Войти
ПрограммированиеФорумЗвук

CreateSoundBuffer - как узнать поддерживаемые форматы? (2 стр)

Страницы: 1 2
#15
1:11, 24 апр. 2011

zlos
> Любят же некоторые придумывать проблемы из пальца.
Это не проблема из пальца. Это реальная проблема кривости архитектуры от M$.
> Всего лишь DirectX. Оно должно идти прямо в redist.
redist не стоит по умолчанию. Значит эту поделку только выкидывать. В реальных условиях она работать не будет. А вместе с ней и программа.
andriano
> Можно узнать, в каком формате отдает данные кодек?
Кодек спрашивает варианты. И в этот момент мне надо знать согласится ли? Поддерживает ли DSound этот формат или нет.
> Если можно, преобразуем то, что выдает кодек, из его, кодека, формата в формат 16 бит 48 КГц и отдаем звуковой железке.
Хочется обойтись без извратов и потери в качестве. Вероятность того, что хоть один формат кодека 100% совместим со звуковой картой - практически абсолютна. Но надо как-то узнать поддерживает ли DSound ДАННЫЙ формат, или нет.
Ещё раз: мне нужно ДО CreateSoundBuffer знать - создастся ли она с таким lpwfxFormat или нет. Понятно, что в DSound всё криво, но не ужели нет ни каких шансов узнать заранее что держит DSound, а что нет???


#16
1:36, 24 апр. 2011

Akad
> Это не проблема из пальца. Это реальная проблема кривости архитектуры от M$.
Это именно что проблема из пальца. Вне специальных звуковых задач 32 битный звук НЕ НУЖЕН. А для специальных - есть специальное железо и специальные интерфейсы.
Akad
> Хочется обойтись без извратов и потери в качестве.
У пользователя с вероятностью близкой к 1 стоят китайские пищалки. Мои не самые худшие колонки не могут это "качество" воспроизвести а мои уши услышать.
> Вероятность того, что хоть один формат кодека 100% совместим со звуковой картой
> - практически абсолютна.
Это формат - 16 бит 24/44/48Кгц, 2 канала. Если что то другое - просто посылать в пешее эроитеское. Всё равно вероятность наткнуться на это стремится к 0.
Akad
> в DSound всё криво,
Вам сказали - не используйте DirectSound. Возьмите XAudio, XACT, OpenAL что угодно. В XAudio можно узнать "родной" формат звука для карты если что.

#17
13:35, 24 апр. 2011

zlos
> Это именно что проблема из пальца. Вне специальных звуковых задач 32 битный звук НЕ НУЖЕН.
ДА ПРИЧЁМ ТУТ 32 БИТА??? Прочитайте ещё раз мой вопрос.
> Это формат - 16 бит 24/44/48Кгц, 2 канала.
А всегда ли это поддержится? Например 48? А если 5.1 захочу?
> Вам сказали - не используйте DirectSound. Возьмите XAudio, XACT, OpenAL что
> угодно. В XAudio можно узнать "родной" формат звука для карты если что.
Опять ещё раз повторяю:
оно не идёт в винде по умолчанию. Так что для использования не пригодно.

#18
16:14, 24 апр. 2011

Akad
> А всегда ли это поддержится?
Всегда. Иначе mp3 с Сердючкой играть не будут. Вы лучше найдите звуковую карту что такое не умеет. Сколько всякого со звуком делал - такой вопрос вообще даже не возникал и всё работало.
Установку DX с всеми нужными частями можно интегрировать в установщик игры.

#19
18:28, 24 апр. 2011

zlos
> Сколько всякого со звуком делал - такой вопрос вообще даже не возникал и всё
> работало.
То, что у меня будет работать - я не сомневаюсь. Вопрос в том, что бы это работало у ВСЕХ пользователей.
> Установку DX с всеми нужными частями можно интегрировать в установщик игры.
Во-первых это не игра, а программа иного рода, причём пользователи её скачивают с интернета (дистриб 10Мб).
Во-вторых я не сторонник забивания системы пользователя всяким мусором.
В-третьих любая прослойка всегда работает более криво, чем непосредственная работа.

P.S. Ладно. Раз в DSound не возможно заранее узнать поддерживается формат или нет, придётся создавать буфер каждый раз. Вопрос считаю закрытым. :(

#20
0:02, 30 апр. 2011

У меня ещё вопрос возник...
А как на S/pdif выводить через DirectSound? Что-то через DirectSoundEnumerate не видно этого выхода. И что-то в SDK ни слова не нашёл про подобные решения. Плохо искал?

#21
21:17, 30 апр. 2011

А там нет какого-либо другого выхода. Нет возможности выводить на коаксиал одно, на SPDIF - другое, а на колонки - третье. Везде выводится одно и то же. Это ОДИН выход.

#22
22:28, 30 апр. 2011

Дык мне не надо выводить разное на разное. Мне надо вывести звук на SPDIF. :) Сейчас этот выход не работает. 5.1 разбрасывается например нормально на обычные выходы, а вот то, что подключено к SPDIF не играет. Плееры через него выводят, т.е. он сам рабочий.

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.