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

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

23.09.2011, 13:15. Показов 18389. Ответов 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
шарпопочитатель
 Аватар для ht1515
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
25.09.2011, 14:00
Студворк — интернет-сервис помощи студентам
а средствами виндус никак нельзя? тоже интересует этот вопрос
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
25.09.2011, 14:57
Цитата Сообщение от nick42 Посмотреть сообщение
... и. И куда его потом направить?...
Поскольку вопрос о загрузке ресурсов из исполняемых файлов выходит за рамки этой книги, если вы хотите исследовать, как работает эта функция, вам придется сделать это самостоятельно. (Однако обратите внимание на тот факт, что при вызове функции PlaySound указывается флаг SND_MEMORY.)
Воспроизведение встроенных WAV-файлов
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
25.09.2011, 17:07  [ТС]
Со статьей ознакомился, спасибо. Правда она мало что мне разъяснила и не со всем я согласен. Мне, например, не очень понятно, к чему эти длинные прописи: загрузка ресурса, блокирование, затем освобождение. Я пока "умял" такие примеры - полчаса потерял (если 1 к 1, то ошибки на стадии компиляции). Сам же пользовался одной строкой (пост №8) и меня всё устраивало. Также не вижу резона отказываться от флага SND_ASYNC, - вы попробуйте в синхронном режиме, - будете без пользы по панели программы кликать, пока Децл не допоёт... . Ну и потом: всё это относится к WAV - файлам; они несжатые. А мне хочется mp3. Их по моему и склеивать на лету можно, если не ошибаюсь.
И с файлами .rc я люблю работать, но опять-таки без лишних телодвижений (ну, ленивый я...!). "Стройка" сама его компилирует, не нужно мне из .rc .res делать. Ну, и так далее... .
"... где бык-то?!" (Маугли) - что насчёт виртуального файла?
0
0 / 0 / 0
Регистрация: 19.07.2017
Сообщений: 1
11.11.2011, 11:10
Воспроизведение встроенных WAV-файлов
Ну вы блин даёте! О_о вы б еще DirectX к этому делу подключили бы
Связывайтесь с Win API, только если это лаконично будет.
А в некоторых ваших примерах по 10-20 строчек кода... nuff said.
Хотите проиграть WAV из ресурсов просто? Это можно сделать ОДНОЙ строкой.

const char* RES = "MYSOUND1";
PlaySound(RES,HInstance, SND_ASYNC | SND_RESOURCE);
// вместо HInstance может быть и NULL, программа на вас не обидится за это

В .rc-файле:
MYSOUND1 WAVE "DOOMMUSIC.wav"
-------------------------------------------------------------
И на всякий случай кидаю пример проигрывания *.MIDI файлов, ВДРУГ кто-нибудь использует MIDI как дешевую альтернативу MP3...

// открытие файла FILE.MID и присвоение ему псевдонима MUSIC
mciSendString("open FILE.MID type sequencer alias MUSIC", NULL, 0, 0);

// запускаем
mciSendString("play MUSIC from 0", NULL, 0, 0);

// ... где-нибудь в коде - остановка музыки
mciSendString("close MUSIC", NULL, 0, 0);

// поставить на паузу
mciSendString("pause MUSIC", NULL, 0, 0);

Правда, при снятии с паузы (командой "play MUSIC") все инструменты почему-то сбрасываются на ПИАНИНО... (у меня на двух разных аудиокартах было одно и то же)
а вот команда "play MUSIC from 0" отрабатывает корректно, но запускает музыку с начала (from 0).

Добавлено через 13 минут
Цитата Сообщение от nick42
"Стройка" сама его компилирует, не нужно мне из .rc .res делать.
+1
Надо просто включить .rc файл в состав проекта [Add file to project].
Вот например мой файл ресурсов, где подключены PNG и WAV файлы:

Цитата Сообщение от 1.rc
HERO1 RCDATA "res\hero.png"
MONSTERS1 RCDATA "res\monsters.png"
DOOMFONT RCDATA "res\doom_font.png"
LAVA RCDATA "res\lava_corner.png"
SKULLSWITCH RCDATA "res\SW2_7.png"
TREDA RCDATA "res\TREDA.png"
DSSLOP WAVE "res\DSSLOP.wav"
DSBOSDTH WAVE "res\DSBOSDTH.wav"
BUNNY RCDATA "res\E1M5.MID"
DSSWTCHN WAVE "res\DSSWTCHN.wav"
DSITEMUP WAVE "res\DSITEMUP.wav"
0
 Аватар для Whatson
9 / 9 / 0
Регистрация: 18.11.2011
Сообщений: 55
07.04.2014, 22:21
VladGuardian, спасибо!
0
23 / 3 / 3
Регистрация: 16.02.2014
Сообщений: 170
Записей в блоге: 1
21.07.2014, 14:19
Цитата Сообщение от VladGuardian Посмотреть сообщение
mciSendString("open FILE.MID type sequencer alias MUSIC", NULL, 0, 0);
Error 1 error C2664: 'MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND) ' : cannot convert argument 1 from 'const char [41]' to 'LPCWSTR'
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.07.2014, 15:22  [ТС]
Похоже, что вместо NULL (второй параметр) ожидается указатель (адрес) на символьный массив (строку), куда запишется результат операции
C++
1
mciSendString(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.07.2014, 15:22

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru