Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/50: Рейтинг темы: голосов - 50, средняя оценка - 4.54
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126

Как воспроизвести звук ?

13.08.2009, 13:36. Показов 9992. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите как сделать чтобы функция sndPlaySound могла воспроизвести звуковой файл, путь к которому содержится в OpenDialog1->FileName.
C++
1
2
3
//Почемуто так не работает
sndPlaySound(PChar(OpenDialog1->FileName) , SND_SYNC);
sndPlaySound(OpenDialog1->FileName , SND_SYNC);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2009, 13:36
Ответы с готовыми решениями:

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

Как воспроизвести звук из ресурса (mp3)
Мне в приложении нужно использовать три муз. фрагмента *.mp3, которые я поместил в ресурсы как BINARY. Сейчас я поступаю...

Как записать звук с микрофона и воспроизвести его?
Подскажите как записать звук с микрофона (можно в wav файл но желательно в буфер) и воспроизвести его?

12
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
13.08.2009, 13:57
C++
1
2
3
if (OpenDialog1->Execute()){
    sndPlaySound(OpenDialog1->FileName.c_str(), SND_SYNC);
  }
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
13.08.2009, 14:04  [ТС]
Не компилится
[BCC32 Error] MainUnit.cpp(137): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] MainUnit.cpp(137): E2342 Type mismatch in parameter 'pszSound' (wanted 'const char *', got 'wchar_t *')
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
13.08.2009, 14:25
Значит у тебя не ANSI версия компилятора. Попробуй дополнительные конвертирования из WideChar в ANSI.

Функциия sndPlaySound() первым параметром нужно передать указатель на однобайтовый массив 'char *', а
C++
1
OpenDialog1->FileName.c_str()
возвращает 'wchar_t *'.
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
13.08.2009, 14:34  [ТС]
У меня C++ Builder 2009 ,
sndPlaySound(OpenDialog1->FileName.c_str(), SND_SYNC);
Что такое .c_str() ?
Попробуй дополнительные конвертирования из WideChar в ANSI
Покажите пожалуйста как это сделать
1
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
13.08.2009, 14:59
У мя СиБильдер 6 (2002 год), на работе, используем проверенные вещи
Покажите пожалуйста как это сделать
Открой в справке описание WideChar. Там должны быть описаны доп методы, как раз c_str(), это один из методов, возвращающий указатель на строку. Так вот, тебе нужно, чтобы возвращал 'char *'. Или дождись подсказок, то тех, у кого аналогичная версия Бильдера.

ЗЫ : за спасибо извини, случайно нажал, но я думаю ты не расстроишься
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
13.08.2009, 19:28  [ТС]
Может кто нибудь знает, как сделать чтобы функция sndPlaySound могла воспроизвести wav файл, путь к которому содержится в OpenDialog1->FileName ? (В C++ Builder 2009)
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
13.08.2009, 20:03
RNT,
Цитата Сообщение от RNT Посмотреть сообщение
sndPlaySound могла воспроизвести wav файл
Без OpenDialog1->FileName,
у тебя вот так работает? ->
C++
1
2
3
4
5
6
#include <mmsystem.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    sndPlaySound("Sound1.wav", 0);//SND_SYNC
 
}
или так?
C++
1
    PlaySound("Sound1.wav", 0, 0);//SND_SYNC
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
13.08.2009, 20:08  [ТС]
Работает вот так
C++
1
sndPlaySound("tada.wav", SND_SYNC);
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
13.08.2009, 20:19
а так?
C++
1
2
    char * fn = "tada.wav";
    sndPlaySound(fn, 0);
0
Автор FAQ
 Аватар для RNT
3150 / 370 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
13.08.2009, 20:27  [ТС]
char * fn = "tada.wav";
sndPlaySound(fn, 0);
Так работает , но такой вариант мне не подходит
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
13.08.2009, 21:03
sndPlaySound это макрос, который в зависимости от использования или не использования юникода "превращается" в sndPlaySoundW или sndPlaySoundA соответственно. Напишите
C++
1
#define UNICODE
перед всеми вашими хидерами и всё у вас заработает.
1
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
14.08.2009, 11:15
ну показали же функцию для преобразования - c_str()
у меня в 2009 работает:

C++
1
2
3
4
5
#include "mmsystem.h"
 
 
AnsiString Play=PathToExe+"\\Wav\\ToExelOk.wav";
PlaySound(Play.c_str(),0,SND_ASYNC);
Добавлено через 1 час 23 минуты 26 секунд
проверил, работает:

C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute() )
{
 AnsiString play=OpenDialog1->FileName;
 PlaySound(play.c_str(),0,SND_ASYNC);
}
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2009, 11:15
Помогаю со студенческими работами здесь

BASS: Воспроизвести звук из потока
делаю как сказано в документации: TResourceStream *mus_buff = new TResourceStream(0, L&quot;bg_music&quot;, RT_RCDATA); ...

Воспроизвести звук с html страницы, что находится в ресурсах
Хелп!Проблема с аудио файлами не могу воспроизвести в WebBrowser звук из ресурсов? Аудио-файл и html-файл лежат в ресурсах. Читаю...

Как воспроизвести звук
Помогите пожалуйста начинающему. (с++) На форме создал 2 кнопки: 1-ая должна включать аудиофайл 2-ая должна этот аудиофайл...

Как воспроизвести звук
люди добрые.выложите пожалуйста книжку,где показано как правильно составлять программу со звуками на pascalABC.а то у меня не получается...

Как воспроизвести звук
Возможно ли написать програму в которой будут использоватся какие-то записи при нажатии определённой кнопки? Если да - то наведитё хотя бі...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
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
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru