Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 71, средняя оценка - 4.75
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
#1

Как в консоли проиграть музыку - C++

11.02.2012, 16:56. Просмотров 10166. Ответов 35
Метки нет (Все метки)

Вот и проблема мой код запускает проигрыватель, возник вопрос как сделать проигрывание в консоли?
И как задавать адрес файла самому?

C++
1
2
3
4
5
6
7
8
9
10
#include <windows.h>
 #include <iostream>
 int main ()
 {
     HINSTANCE result;
     result=ShellExecute(NULL,NULL,L"E:\\.mp3",NULL,NULL,SW_SHOWDEFAULT);
     if ((int)result<=32)
     std::cout << "Error!\nReturn value: " << (int)result << "\n";
     return 0;
 }
заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как в консоли проиграть музыку (C++):

Как проиграть mp3 с помощью VC++? - C++
I don't know how to play mp3 sound in vc6++ please help me???!!!

Как проиграть видео avi - C++
Как проиграть видео avi в окне (c++)?

Как проиграть видео с YouTub'a? - C++
Привет. Извините что не совсем в нужный раздел. Как бы мне проиграть видео с ютуба в своём приложении? (не важно формс, или что то другое),...

Как добавить музыку в formy - C++
Искал на сайте, нашел тему по С билдеру,но не подходит. Нужно загрузить в форму какой нибудь трек. Не знаю с какой компонентой работать,...

playsound(), как сделать фоновую музыку в игре - C++
Есть игра. Есть звуки с использованием Beep()/ Нужна фоновая музыка. Читал что нашел - предлагают создать параллельный поток. Для меня это...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли - C++
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор мышки (и еще мне надо бы узнать нажатие...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
12.02.2012, 14:23 #16
Цитата Сообщение от isaak Посмотреть сообщение
А wav вообще не хочит проигровать.
- wav проигрываются на ура
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
PlaySound(szPath, NULL, SND_FILENAME | SND_ASYNC)
,

Цитата Сообщение от isaak Посмотреть сообщение
у меня он не все mp3 проигрывает,особенно те у которых есть названия песен или музыки.
- думаю это связано с тем что MP3Tag хедер идёт вначале файла, а MCI не способен распознавать MP3Tag вначале файла(по моему раньше, ну так лет 10-ть назад MP3Tag шёл вконце вот и не позаботились разработчики о возможном изменении положения MP3Tag)
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
12.02.2012, 16:14 #17
isaak, программированием вообще надо заниматься. Значит, что сделал я в твоём случае: качнул с сети исходник для проигрывания mp3- файлов, компильнул. Так, одно есть. Теперь качнул кодек LAME (консольный) для конвертации wav-> mp3, потом пргнал его через специально созданную мной прграмму, чтобы он даже и консоли не создавал, а работал как бы в фоновом режиме.

Ну то есть уже можно прроигрывать как mp3 так и wav- файлы. Lame естессно, надо запускать программно (CreateProcess). Ну если силы есть работать, работай в этом направлении.
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
12.02.2012, 22:07 #18
kravam а какой именно исходник для проигрывания mp3- файлов вы использовали и после конвертации через какую программу прогоняли если не сложно?
-=ЮрА=-
12.02.2012, 22:50
  #19

Не по теме:

isaak, зарегестрируйся и качай исходники
A very simple MP3 Player - CodeProject
MP3 Player for Windows 7 - CodeProject
PS:И вообще на том ресурсе полно качественного и полезного кода
Надеюсь админ меня не накажет за ссылки...

kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
12.02.2012, 23:10 #20
Тут моя ссыль, там исходник.
Функция PlaySound воспроизводит звук и возвращает управление СРАЗУ ЖЕ (но это неправильно), почему?

Кодек lame (конвертировать wav->mp3)
Вложения
Тип файла: zip LAME_MP3_Encoder.zip (269.1 Кб, 48 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
15.02.2012, 11:26 #21
Порывшись в своих старых постах откопал ссылку
Плеер
думаю пригодится
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
18.02.2012, 01:40 #22
http://kachkarvv.org.ua/src-cplus-player.php
Zarik
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 22
09.05.2012, 01:40 #23
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <windows.h>
#include <stdio.h>
#pragma comment (lib, "winmm.lib")
int main()
{
* * char szPath[MAX_PATH] = {0};
* * char mciStr[MAX_PATH] = {0};
* * printf("Enter FilePath : ");
* * scanf("%[^\n]",szPath);
* * sprintf(mciStr,"play %s wait",szPath);
* * if(mciSendString(mciStr, NULL, 0, NULL))
* * * * printf("mciSendString - PLAY\n");
* * else
* * * * printf("mciSendString - ERROR %s\n",strerror(GetLastError()));
* * system("pause");
* * return 0;
}
а как сделать, чтобы без ввода папки и файла, а чтобы в коде путь был? а то не могу
переделать никак
kravam
быдлокодер
1694 / 881 / 44
Регистрация: 04.06.2008
Сообщений: 5,441
09.05.2012, 01:48 #24
Путь это строка символов, объяви её так в коде:
C++
1
char put [256]= "тут_пиши_путь_который_надо";
И всё будет круто.
-=ЮрА=-
Заблокирован
Автор FAQ
09.05.2012, 01:59 #25
Zarik, вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <stdio.h> 
#pragma comment (lib, "winmm.lib")
int main()
{
    char szPath[] = "D:\\Test\\snd.mp3";
    char mciStr[MAX_PATH] = {0};
    sprintf(mciStr,"play %s wait",szPath);
    if(mciSendString(mciStr, NULL, 0, NULL))
        printf("mciSendString - PLAY\n");
    else
        printf("mciSendString - ERROR %s\n",strerror(GetLastError()));
    system("pause");
    return 0;
}
Zarik
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 22
09.05.2012, 01:59 #26
спасибо
-=ЮрА=-
Заблокирован
Автор FAQ
09.05.2012, 02:04 #27
Цитата Сообщение от Zarik Посмотреть сообщение
sprintf("e.waw","play %s wait","D:\папка");
так некатит...
Конечно нет "e.waw" это строковый литерал и в него уже ничего не допишешь

Добавлено через 1 минуту
Zarik, код работает и с mp3. Вообще чтобы исключить гипотетические возможные проблеммы с кодировкой и путями с пробелами, предлагаю между этих строк
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
char szPath[] = "D:\\Test\\snd.mp3";
* * char mciStr[MAX_PATH] = {0};
втиснуть
C
1
GetShortPathName(szPath,szPath,strlen(szPath));
Zarik
3 / 3 / 0
Регистрация: 26.03.2012
Сообщений: 22
09.05.2012, 02:05 #28
блин ошибка,
Ошибка 26 error C2664: mciSendStringW: невозможно преобразовать параметр 1 из "char [260]" в "LPCWSTR" d:\курсова\курсова клавіатурний тренажер\курсова клавіатурний тренажер\main.cpp 272 1
27 IntelliSense: аргумент типа "char *" несовместим с параметром типа "LPCWSTR" d:\курсова\курсова клавіатурний тренажер\курсова клавіатурний тренажер\main.cpp 272 19
C
1
if(mciSendString(mciStr, NULL, 0, NULL))
-=ЮрА=-
Заблокирован
Автор FAQ
09.05.2012, 02:07 #29
Цитата Сообщение от Zarik Посмотреть сообщение
блин ошибка,
Ошибка 26 error C2664: mciSendStringW: невозможно преобразовать параметр 1 из "char [260]" в "LPCWSTR" d:\курсова\курсова клавіатурний тренажер\курсова клавіатурний тренажер\main.cpp 272 1
27 IntelliSense: аргумент типа "char *" несовместим с параметром типа "LPCWSTR" d:\курсова\курсова клавіатурний тренажер\курсова клавіатурний тренажер\main.cpp 272 19
- у тебя юникод в кодироке, сейчас сброшу проект, откроешь и всё будет гуд. Потом откопаю тебе ссылку почему у тебя в 2008-й или 2010-й студии такой косяк
-=ЮрА=-
Заблокирован
Автор FAQ
09.05.2012, 02:11 #30
Zarik, теперь всё будет компилироваться
Миниатюры
Как в консоли проиграть музыку  
Вложения
Тип файла: rar PlaySnd.exe.rar (28.2 Кб, 18 просмотров)
Тип файла: rar PlaySnd_proj.rar (7.5 Кб, 21 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 02:11
Привет! Вот еще темы с ответами:

считывание с консоли ( не с клавы, а именно с консоли) - C++
нужно написать функцию которая возвращает string в котором написано 500 символов которые были выведены в консоли от начала. среда :...

Проиграть мелодию, встроенную в программу - C++
вообщем, я решил написать небольшую игру тетрис, консольный режим, и сразу возник вопрос можно ли залить в эту игру мелодию, чтобы во время...

Как считать русские символы как строку в консоли - C++
На консоль текст русский выводиться,а вот при считывании он в казябриках. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Проиграть мелодию «В лесу родилась елочка» - C++
Пусть необходимо проиграть мелодию «В лесу родилась елочка». Создайте массив действительных чисел, содержащий заданные частоты нот: 520,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.05.2012, 02:11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru