PDA

View Full Version : دریافت ورودی از طریق TAPIEX در حین پخش صدا از طریق مودم



sjhosseini
یک شنبه 19 آبان 1387, 11:19 صبح
با سلام
چطور میشه که در کامپوننت TAPIEX به محض اینکه رویداد OnDTMF اتفاق افتاد صدایی که در حین پخش از طریق این کامپوننت هستش قطع بشه و برنامه بتونه کلید ورودی کاربر رو بخونه.
مشکل اینه که اگه مدت صدایی که قراره پخش بشه از یه حدی بیشتر بشه (مثلا بیشتر از 15 ثانیه) تا زمانی که صدای خروجی به اتمام نرسه , هیچ رقم ورودی توسط برنامه دریافت نمیشه و برنامه تا اتمام پخش صدا منتظر میمونه و ارقامی که بعد از آن وارد میشه رو میتونه بخونه.
با تشکر

mpmsoft
یک شنبه 19 آبان 1387, 13:05 عصر
من هم این مشکل رو دارم البته برای من بعد از 3-4 ثانیه که فایل درحال پخش هست شناسایی می کنه

sjhosseini
دوشنبه 20 آبان 1387, 06:59 صبح
از دوستان کسی نیست که تونسته باشه این مشکل رو حل کنه؟

sjhosseini
پنج شنبه 07 آذر 1387, 07:18 صبح
کسی تا حالا این مشکل رو نداشته؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

hasanain
پنج شنبه 07 آذر 1387, 13:56 عصر
کنترلی که در این تاپیک (http://barnamenevis.org/forum/showthread.php?t=132824) معرفی کردم، یکی از قابلیتهای زیبایش این است که به محض زده شدن اولین کلید از جانب تماس گیرنده، حتی اگر در حال پخش صدا باشد، آن را تشخیص میدهد و به شما گزارش میدهد، شما میتوانید که صدا را قطع کنید.
اما خوشبختانه یا متأسفانه (!؟) کرک نشده است و من هم چیزی نیافتم.

hasanain
پنج شنبه 14 آذر 1387, 07:44 صبح
دوست عزیز، قویاً توصیه میکنم از کنترل KDTele بهره ببرید. خوشبختانه (یا بدبختانه!!) نسخه کرک شده اش هم در سایت موجود است و من برنامه ام را اکنون با این کنترل عرضه کردم.

* عیب دیگری که TapiEx دارد این است که موقع Disconnect از جانب تماس گیرنده، خط را اشغال نگه میدارد (نمیدانم شاید پیش من چنین است!) اما KDTele تا حداکثر 10 ثانیه بلکه کمتر، به شما گزارش میدهد و میتوانید Drop کنید. در هنگام پخش صدا از مودم هم به راحتی میتوانید DTMF را دریافت کنید و در صورت لزوم صدا را قطع کنید. شاید تنها عیب این کنترل نسبت به TapiEx این است که در TapiEx میتوانیم چندین فایل صوتی را پشت سرهم به کنترل بدهیم و خودش مدیریت میکرد که پشت سرهم پخش شوند اما در KDTele بایستی خودمان مدیریت کنیم که کار آسانی است.

* نکته دیگر اینکه چون برخی مواقع، چه کنترل TapiEx چه کنترل KDTele چه کنترل Tapi_Modem_ActiveX که معرفی نمودم، در پخش صدا به مشکل میخورند و گیر میدهند، من جهت پخش صدا از کنترل MMControl یا به اصطلاح MultiMedia که کنترل قدیمی و ساده ای است، استفاده کردم. روش آن هم در این سایت، ذکر شده است که چطور با این کنترل، صدا را به مودم بفرستیم.

joker
پنج شنبه 14 آذر 1387, 11:07 صبح
توی onDTMF اول اولش اینو بنویس ببین مشکلت حل میشه
m_CurrCall.StopPlayBack;
البته نسخه ای که من استفاده میکنم ( 8-4-6-3) هست

-- برای رفع مشکل دیسکانتی
توی متد onCallStateChange
بنویسید


If (NewState = CALLSTATE_DISCONNECTED ) Then
begin
m_Call.LineOwner.Close;
m_Call.LineOwner.open;

end;

مشکلی که ازش دیدم روی مودمهای اکسترنال usb میرفت تو حالت IDLE :)

hasanain
پنج شنبه 07 خرداد 1388, 08:00 صبح
دوست عزیز، قویاً توصیه میکنم از کنترل KDTele بهره ببرید.... شاید تنها عیب این کنترل نسبت به TapiEx این است که در TapiEx میتوانیم چندین فایل صوتی را پشت سرهم به کنترل بدهیم و خودش مدیریت میکرد که پشت سرهم پخش شوند اما در KDTele بایستی خودمان مدیریت کنیم که کار آسانی است.



تازه فهمیدم البته از روی مثالهای خود KDTele که به راحتی میتوان چند فایل همزمان را با این کنترل پخش کرد

lvRet = KDVoice1.PlayMultipleFiles(KDPhone1.WavePlayID, _
App.Path + "\AnsweringMachine_Prompt.wav|AnsweringMachine_Tone .wav", lvTotalSamples)


یعنی کافیه که فایلها را با علامت | جدا کنیم و به عنوان یک فایل به کنترل بدهیم. البته این مطلب در نسخه 4 به بعد به کنترل اضافه شده است.