我們正在開發一款移動應用程序,其目標是由Symbol製造的設備。在這些設備上,Windows Mobile就是這個系統。用c#中的符號開發工具包播放聲音#
我們的應用程序播放聲音(實際上是簡單的嘟嘟聲):我們使用Symbol提供的開發工具包訪問設備聲卡以播放聲音。
這裏是我們使用的代碼:
Symbol.Audio.Device MyDevice = (Symbol.Audio.Device)Symbol.StandardForms.SelectDevice.Select(
Symbol.Audio.Controller.Title,
Symbol.Audio.Device.AvailableDevices);
Symbol.Audio.Controller sound_card = new Symbol.Audio.StandardAudio(MyDevice);
int Duration = 15;
int Frequency = 3000;
sound_card.PlayAudio(Duration, Frequency);
以毫秒持續時間和頻率赫茲。
幾乎總是聲音正確播放(我的意思是聲音播放時間合適)。
但有時,聲音播放時間更長(播放時間約1秒)。
我們想避免這樣的事情,因爲這對用戶耳朵來說是相當令人不安的。
我不知道爲什麼會出現這種現象:短聲和長聲之間的應用程序沒有任何變化。應用程序數據是相同的,沒有其他任務和應用程序沒有執行後臺任務。
當向用戶顯示一個特定的屏幕(我的意思是一個Form對象被創建,並且在其初始化期間,發出嘟嘟聲)時播放此嘟嘟聲。 所以我認爲,也許,強烈使用設備cpu時會播放聲音。而且由於CPU繁忙,在合適的時間內播放聲音失敗。
您以前是否遇到過這個問題? (也許它是特定於Symbol Developper套件的,有些人可能已經使用了id)。
你知道一種方法來避免這種更長的嗶嗶聲嗎?
編輯: 我實現了ctacke解決方案:我在高優先級的單獨線程中播放蜂鳴聲。 此外,我增加了聲音的持續時間(我把30毫秒,而不是15:也許持續時間越長,系統在正確的時間內播放聲音越好)。
我不知道這個實現是否解決了這個問題,或者沒有:因爲bug的不確定性,需要一些時間才能確保問題得到解決。
謝謝你的回答,它幫了我很多。
聽起來不錯,我會試試看。 – OutOfBound 2010-03-05 13:14:44