2009-10-10 3 views
1

Как вы можете контролировать громкость звука, воспроизводимого с помощью SndPlayAsync на Windows Mobile 6 ??Управление громкостью при использовании функции SndPlayAsync на Windows Mobile 6

Кажется, что никто не знает! В документации ничего не говорится об этом ... Так что либо нет, либо хранится в секрете ...

Кроме того, я знаю о возможности использования проигрывателя Windows Media, но я скорее, нет, если это возможно.

Спасибо за помощь!

Aviv.

ответ

0

Для установки основного тома вам необходимо использовать функции API mixer.... Вот пример кода:

http://www.csharp-home.com/index/tiki-read_article.php?articleId=134

Чтобы использовать этот код в приложении Windows Mobile, вам необходимо изменить «Winmm.dll» на «coredll.dll». Кроме того, эти методы могут не поддерживаться в Windows Mobile, но я уверен, что они есть.

2

Мое предложение:

[DllImport("coredll.dll", SetLastError = true)] 
protected static extern int waveOutSetVolume(IntPtr device, uint volume); 

[DllImport("coredll.dll", SetLastError = true)] 
internal static extern int waveOutGetVolume(IntPtr device, ref int volume); 

И тогда вы можете вызвать методы:

int before; 
uint maxVol = uint.MaxValue; 
waveOutGetVolume(IntPtr.Zero, ref before); 
waveOutSetVolume(IntPtr.Zero, maxVol); 
//Do some playing 
waveOutSetVolume(IntPtr.Zero, before); 

Вы можете отлаживать для других значений. Это установит его максимально.

Надеюсь, это поможет?

Смежные вопросы