По совету deathsoft'a наконец-то добрался до тестов вывода звука через WASAPI для Vista и более новых виндовс.
Несколько слов о WASAPI в эксклюзивном режиме - это самый низкоуровневый вывод звука, благодаря чему:
1) Исключаются любые программные мишкеры (звук получается наиболее чистый)
2) Имеем самый точный доступ к указателю на текущую позицию воспроизведения (с точностью до отсчета, а не с точностью до слона (10мс под WASAPI shared или DirectSound))
3) Т.к. вывод эксклюзивный, то во время него другие программы звук выводить не могут.
Сделал маленький тестик с консольным окошком. Кому не жалко, запустите и киньте скриншот сюда (только для винды Vista и выше) - удалено
Как пользоваться тестом:
1) При запуске запищит звуковой сигнал, длительностью 4 секунды и побегут циферки. Циферки означают минимальную разрешающую способность буфера. В основном она должна быть равна 1.
2) Как только пойдут устойчивые нули, окно можно закрывать, предварительно сделав скриншот.
3) Если закрыть окно раньше, особенно в самом начале, как только начался звук, винда может повиснуть синим экраном (да-да, вот такой он WASAPI), во всяком случае, у меня при этом стабильно виснет.
Кстати, в эксклюзивном режиме WASAPI, судя по тому, что пишут в инетах, нет никакой возможности перечислить все типы форматов проигрывания (44, 48, 96кГц и т.д.), т.к. такой функции просто нет. Вместо этого приходится предлагать системе проиграть в том или ином формате, а она уже говорит, может она это или нет. И если хочется узнать все типы проигрываемых форматов, то надо 'тупо' предлагать ей все по очереди, и те, на которые ответит согласием, помечать, как поддерживаемые.




Ответить с цитированием