Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как проиграть несколько звуков из ресурса?   Найти похожие ветки 

 
И. Павел ©   (2010-02-05 22:11) [0]

Здравствуйте. В ресурсе имеется несколько звуковых файлов: .wav (PCM) и .wav с mp3 кодеком. Нужны следующие возможности:
1) Воспроизводить несколько звуков одновременно
2) Зацикливать некоторые из звуков
3) Останавливать некоторые из звуков (лучше "пауза" но можно и "стоп")
4) Программа должна состоять из единственного файла - исполнимого.
Подскажите, пожалуйста, как все это реализовать?

Рассматривал такие методы:
1.SndPlaySound - каждый очередной вызов прекращает проигрывание предыдущих звуков.

2.Через MCI - не знаю - можно ли передавать туда ресурсы?

 "open waveaudio shareable"
 "play "C:\xyz\BackgroundMusic.wav""
 "play "C:\xyz\AnotherMusic.wav""
 "close waveaudio"


3. DirectShow. Никогда им раньше не пользовался. Если простое проигрывание файлов иначе сделать не получится, наверное, сделаю через него.


 
antonn ©   (2010-02-05 22:24) [1]

если к программе добавить bass.dll, то скажу, иначе не скажу :)


 
Anatoly Podgoretsky ©   (2010-02-05 22:29) [2]

Справка> sndPlaySound is being maintained for backward compatibility.


 
И. Павел ©   (2010-02-05 23:17) [3]


> Anatoly Podgoretsky ©

Я нашел эту фразу в MSDN, но там, кажется, не сказано, что теперь используют на замену SndPlaySound. Подскажите, пожалуйста, что используют вместо SndPlaySound теперь? Может быть, как раз DirectShow, или что-то другое?


> antonn ©

Спасибо за вариант. Пока искал способы работы со звуком тоже натыкался на эту библиотеку. Но дело в том, что я хотел бы сделать программу в виде единственного файла - чем добавлять dll лучше вынести звуковые файлы - плюс в том, что пользователь сможет их изменять на свой вкус.


 
Anatoly Podgoretsky ©   (2010-02-05 23:27) [4]

> И. Павел  (05.02.2010 23:17:03)  [3]

PlaySound


 
Anatoly Podgoretsky ©   (2010-02-05 23:35) [5]

PlaySound

1) Воспроизводить несколько звуков одновременно
Вроде не может.

2) Зацикливать некоторые из звуков
Запросто

3) Останавливать некоторые из звуков (лучше "пауза" но можно и "стоп")
Не знаю

4) Программа должна состоять из единственного файла - исполнимого.
Никаких проблем, может играть из файла, ресурса, памяти

И многое другое, но не все.


 
Дурак   (2010-02-06 02:50) [6]

Может я дурак,  а если заюзать через нити?


 
Германн ©   (2010-02-06 03:15) [7]


> Дурак   (06.02.10 02:50) [6]
>
> Может я дурак,  а если заюзать через нити?

Может ты и не дурак, но сам вопрос дурной.


 
KilkennyCat ©   (2010-02-06 06:32) [8]


> Дурак   (06.02.10 02:50) [6]

ради одновременности? необязательно. Нет особых проблем даже проиграть на каждый канал что-то отдельное, не говоря уж о стандартном микшировании.


 
И Павел   (2010-02-06 13:08) [9]


> Anatoly Podgoretsky ©

Спасибо. Для текущей задачи мне не совсем подходит, но на будущее запомню, что проиграть файл из ресурса можно одной функцией.


> Может я дурак,  а если заюзать через нити?

Спасибо. Но (кажется, в Delphi потоки и нити не отличаются?) так я уже пробовал. Тоже, если предыдущий звук запущен асинхронно, он прерывается, а если синхронно - не пускает новый.


> Нет особых проблем даже проиграть на каждый канал что-то
> отдельное, не говоря уж о стандартном микшировании.

Насколько я понимаю, речь идет о DirectSound? Если нет - пожалуйста, поясните.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1269906662
Дмитрий
2010-03-30 03:51
2010.08.27
обработка пакета сервера


2-1268910138
QAZ
2010-03-18 14:02
2010.08.27
Что будет со строкой


2-1269889255
HRustBB
2010-03-29 23:00
2010.08.27
Нужен компонент для отображения схеммы данных


15-1266095159
Peace of cake
2010-02-14 00:05
2010.08.27
Как работает функция Ord?


15-1268035212
Anatoly Podgoretsky
2010-03-08 11:00
2010.08.27
Галкин дошутился