Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/95: Рейтинг темы: голосов - 95, средняя оценка - 4.51
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798

Как воспроизвести звук из ресурса (mp3)

23.09.2011, 13:15. Показов 18021. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне в приложении нужно использовать три муз. фрагмента *.mp3, которые я поместил в ресурсы как BINARY.
Сейчас я поступаю "некрасиво", - отправляю их в буфер, его записываю как файл и в функции воспроизведения ...
hwnd = MCIWndCreate(hwndParent, hInstance, 0, "fragm.mp3");
MCIWndPlay(hwnd);
пользуюсь этим файлом.
ХОТЕЛОСЬ БЫ "научить" MCIWndCreate вместо файла использовать сам буфер (массив) или поток.
Может кто знает, как иначе "скроить" воспроизведение *.mp3 из ресурса?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2011, 13:15
Ответы с готовыми решениями:

Как воспроизвести mp3-звук
Всем здравствуйте. Для wav-файлов всё понятно. Воспроизвести: PlaySound("example.wav",0,SND_ASYNC); Прервать...

Как воспроизвести звуковой файл ресурса
Как воспроизвести в AxWindowsMediaPlayer файл из ресурса? звуковой обычный wav закинут в ресурс. как прописать его в качестве URL для...

Как воспроизвести mp3
Пробую таким способом: System.Media.SoundPlayer sp = new System.Media.SoundPlayer(@"C:\My downloads\Music\1 Klass - Dva...

26
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
23.09.2011, 16:50
bass.dll тебе в помощь + документация в архиве
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.09.2011, 17:32
может, LoadFromResourceName, или LoadFronStream, или
C++
1
PlaySound("IDC_NAME" /*имя ресурса*/, 0, SND_RESOURCE );
я не помню, умеет ли PlaySound играть мп3, но общий подход такой
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
23.09.2011, 17:56
nick42,
Вас нужен работать с bass -ом (bass.dll, bass.h, bass.lib)
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
23.09.2011, 20:23
LK, mp3 вроде не умеет, ну или у меня просто не получилось =/
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
23.09.2011, 22:27  [ТС]
PlaySound с WAV точно умеет работать из ресурса (проверено); только вот размер программы неоправданно растёт. Также не очень бы хотелось использовать подгружаемые библиотеки (типа bass.dll) - оставлю на крайний случай. Пока играюсь с SND_MEMORY в функции:
C++
1
 PlaySound(buff, 0, SND_MEMORY);
но пока в программе вываливается на ошибку.
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
23.09.2011, 23:57
а у меня почему то не получается вавку с ресурса проиграть >_<
nick42, подскажи
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
24.09.2011, 12:02  [ТС]
Цитата Сообщение от Flyer Посмотреть сообщение
а у меня почему то не получается вавку с ресурса проиграть >_<
nick42, подскажи
Я делаю так: подключаю к проекту файл ресурсов - nn.rc, в котором есть строка типа:
BUBEN SOUND "img/buben.wav"
и в программе что-то наподобие этого (с использованием #include <mmsystem.h>):
C++
1
2
3
4
    void __fastcall TForm1::Button1Click(TObject *Sender)
{
      PlaySound("BUBEN", 0, SND_RESOURCE | SND_ASYNC);
}
1
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
24.09.2011, 13:05
ага, тип саунд. Просто в рад хе2 в проект - > ресурсы и картинки не было такого типа
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 00:55  [ТС]
... и всё же по теме: можно ли каким-то образом сопоставить имени (constant char) поток со свойствами файла или именованный массив, тоже со свойствами файла. Что бы MultimediaControlInterface (MCI) захотел работать с ним, как с файлом, и не пришлось бы создавать промежуточный файл на диске (а не в памяти)?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.09.2011, 01:03
Цитата Сообщение от Flyer Посмотреть сообщение
ага, тип саунд. Просто в рад хе2 в проект - > ресурсы и картинки не было такого типа
ну а RCDATA там было ?
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
25.09.2011, 01:13
было, собственно то я и выбрал, но звук не проигрывался.
а сейчас попробовал, походу я просто не услышал его
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 01:28  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
ну а RCDATA там было ?
запись в файле .rc строки вида
soundX RCData "file.wav"
действительно помещает этот файл в раздел RCData ресурсов; но как его затем воспроизвести? Флаг "SND_RESOURCE" указывает на тип ресурса, а какой должен быть флаг в случае RCData, - я не знаю. Может "SND_ALIAS_ID"? Путем перебора всех флагов - длинная песня получается... .
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
25.09.2011, 01:31
а не, LK, он таки не проигрывается когда тип ресурса RCDATA
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.09.2011, 02:37
читай сюды
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 10:06  [ТС]
LK, спасибо! Интересная статья

Добавлено через 1 час 16 минут
Поймите правильно мою назойливость... . Какие варианты рассматриваются: заменить в ресурсах .mp3 на .wav и использовать winmm.dll; использовать сторонние библиотеки (bass.dll), а значит портабельность приложения под угрозой, - нужно использовать инсталлятор; наконец оставить всё как есть, то-есть создавать временный файл, а это ведёт к задержке звука по крайней мере при первом запуске. Между тем, - третий вариант (временный файл и стандартная библиотека) меня бы вполне устроил без временного файла. И он работает! Не могу поверить, что в возможностях мощного C++ нет такой возможности, как подмена физического файла на диске его аналогом в виде массива или потока. Ведь структура данных идентична!
0
 Аватар для pomkalk
365 / 247 / 24
Регистрация: 03.04.2011
Сообщений: 558
Записей в блоге: 1
25.09.2011, 11:32
Цитата Сообщение от nick42 Посмотреть сообщение
а значит портабельность приложения под угрозой
Когда я первый раз его использовал, мне так же стало интересно, и я наделал много разных маленьких программ, после чего пробывал на разных компах, проблем не было вообще!
PS в прогах я библиотеку подключал динамически
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 11:56  [ТС]
Даже если динамически... - я куда от использования bass.dll денусь? А если ее нет на компе? С собой носить? Это было бы удачное решение, не будь стандартной библиотеки msvfw32, которая умеет воспроизводить mp3 (мне и качество-то особо не нужно!). Вопрос в том, как ей подсунуть вместо физического файла виртуальный.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.09.2011, 13:05
ну так сделайте себе поток:
C++
1
TMemoryStream *MyResourceStream;
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 13:15  [ТС]
... и. И куда его потом направить?...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2011, 13:15
Помогаю со студенческими работами здесь

Как воспроизвести mp3 файл?
Всем привет! Как воспроизвести mp3 файл?

Как воспроизвести mp3 файл
Как воспроизвести mp3 или другой звуковой файл?

Как воспроизвести mp3 файл из ресурсов?
У меня в ресурсах проекта есть mp3 и я его хочу воспроизвести. Как же мне это сделать? И чтобы можно было переносить exe-шник из места в...

Как воспроизвести MP3 файл по ссылке?
Здравствуйте! Имеется ссылка на mp3 файл &quot;http://sait.ru/file.mp3&quot;. Нужно сделать, что бы по нажатию на кнопку этот файл...

Как воспроизвести стандартными средствами mp3 файл
Как воспроизвести стандартными средствами mp3 файл в python. Без разных сторонних модулей, просто звук mp3.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru