Мы разрабатываем мобильное приложение, предназначенное для устройств, выпускаемых Symbol. На этих устройствах Windows Mobile является системой.
Наше приложение воспроизводит звуки (на самом деле простые звуковые сигналы): мы используем комплект разработчика, предоставленный 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);
с длительностью в миллисекундах и частотой в герцах.
Почти всегда звук воспроизводится правильно (я имею в виду, что звуки воспроизводятся с правильной продолжительностью).
Но иногда звук воспроизводится гораздо дольше (он воспроизводится в течение примерно одной секунды).
Мы бы хотели избежать такого, потому что это очень мешает пользователям.
Я понятия не имею, почему существует такое поведение: в приложении ничего не меняется между коротким звуком и длинным звуком. Данные приложения такие же, никакая другая задача и никакая фоновая задача не выполняются приложением.
Этот звуковой сигнал воспроизводится, когда пользователю отображается определенный экран (я имею в виду, что объект формы создан, и во время его инициализации воспроизводится звуковой сигнал).
Поэтому я думаю, что, возможно, звук воспроизводится, когда процессор сильно используется. А поскольку процессор занят, воспроизведение звука в нужное время не дает успеха.
Вы уже встречались с этой проблемой раньше? (Возможно, это специфично для набора Symbol Developper, и некоторые из вас, возможно, уже использовали id).
Знаете ли вы, как избежать таких длинных гудков?
РЕДАКТИРОВАТЬ:
Я реализовал решение ctacke: я играю звуковой сигнал в отдельном потоке с высоким приоритетом.
Кроме того, я увеличил продолжительность звука (я поставил 30 миллисекунд вместо 15: возможно, чем больше продолжительность, тем лучше система сможет воспроизводить звук в течение правильного промежутка времени).
Я пока не знаю, решает ли эта реализация эту проблему или нет: из-за неопределенности ошибки, потребуется некоторое время, чтобы убедиться, что проблема решена.
Спасибо за ваши ответы, мне это очень помогло.