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

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

23.09.2011, 13:15. Показов 18127. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru