Управление громкостью при использовании функции SndPlayAsync в Windows Mobile 6 - PullRequest
1 голос
/ 10 октября 2009

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

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

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

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

Aviv.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2010

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

[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);

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

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

0 голосов
/ 10 октября 2009

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

* ** +1004 1005 * -home.com / индекс / Тики-read_article.php? ArticleID = 134

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

...