393 / 121 / 48
Регистрация: 26.10.2013
Сообщений: 734
1

Воспроизведение звуковых файлов (wav или mp3)

27.09.2014, 17:09. Показов 16640. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогите разобраться с воспроизведением звуковых файлов, wav или mp3, это нужно чтобы в программе были звуковые уведомления. Пробовал делать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
uses
  mmsystem;
 
// PLAY
sndPlaySound('C:\DELPHIWORLD.WAV', SND_ASYNC);
 
// Loop Mode (зацикливание)
sndPlaySound('C:\DELPHIWORLD.WAV', SND_ASYNC + SND_LOOP);
 
//STOP
sndPlaySound(nil, SND_ASYNC);
звук не воспроизводится.
потом пробовал так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.FormCreate(Sender: TObject);
var 
  MMplay:TMediaPlayer;
begin
  MMplay:=TMediaPlayer.Create(application);
  with MMplay do
  begin
    CreateParented(Form1.Handle);
    FileName:='D:\music\other\et.wav';
    Open;
    Play;
  end;
end;
результат на скриншоте

и последнее использование библиотеки bass.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Bass;
 
type
  TChannelType = (ctUnknown, ctStream, ctMusic);
 
type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
 
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);  private
    { Private declarations }
  public
    { Public declarations }
    function BASS_PlaySoundFile(const FileName: string): Boolean;
  end;
 
var
  Form2: TForm2;
  Channel: DWORD;
     ChannelType: TChannelType;
implementation
 
{$R *.dfm}
 
{ TForm2 }
 
function TForm2.BASS_PlaySoundFile(const FileName: string): Boolean;
var
  ChannelInfo: BASS_CHANNELINFO;
begin
   Result:= False;
   Channel:= BASS_StreamCreateFile(False, PChar(FileName), 0, 0, 0);
  if (Channel <> 0) then
    ChannelType:= ctStream;
  if (Channel <> 0) then
    BASS_ChannelPlay(Channel, False);
  Result:= Channel <> 0;
end;
 
procedure TForm2.Button1Click(Sender: TObject);
begin
  case FileExists('9.mp3') of
    True: case BASS_PlaySoundFile('9.mp3') of
            True: ShowMessage('File run');
            False: ShowMessage('Unknown error');
          end;
    False: ShowMessage('File not found');
  end;
end;
 
procedure TForm2.Button2Click(Sender: TObject);
begin
  BASS_ChannelStop(Channel);
end;
 
procedure TForm2.FormCreate(Sender: TObject);
var
  BassInfo: BASS_INFO;
begin
  BASS_Init(1, 44100, BASS_DEVICE_3D, Handle, nil);
  BASS_Start;
  BASS_GetInfo(BassInfo);
end;
end.
результат сообщение с текстом unknown error. самое забавное что делал это по мануалу, в конце была ссылка на исходник, который я скачал, код исходника идентичен и работает. он был написан на делфи 2007, у меня делфи 2010. Ну и сам вопрос, как мне воспроизвести звуковой файл?

Добавлено через 6 минут
ага, скриншот не загрузился... кто придумал ограничить время редактирования до 5 минут!?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2014, 17:09
Ответы с готовыми решениями:

Воспроизведение звуков wav mp3
Возможно ли сделать чтобы при нажатие кнопки вылазил диалог с выбором проигрования музыки?. За...

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

Вывод списка mp3 файлов и их воспроизведение
Я искал на форуме, находил что-то похожее, но не нашел то что нужно. Нужно на delphi 7: Чтобы...

Воспроизведение mp3 или wav файлов
Доброго всего! Никто не подскажет, можно ли как-нибудь воспроизводить mp3 или wav файлы на форме в...

8
393 / 121 / 48
Регистрация: 26.10.2013
Сообщений: 734
27.09.2014, 17:11  [ТС] 2
вот
Миниатюры
Воспроизведение звуковых файлов (wav или mp3)  
0
591 / 543 / 206
Регистрация: 24.01.2012
Сообщений: 1,339
27.09.2014, 22:53 3
У меня код с использованием bass на delphi 7 работает. Так что нужно подробнее искать причину, почему не работает код. Например после вызова Channel:= BASS_StreamCreateFile(False, PChar(FileName), 0, 0, 0); если channel=0 то посмотреть значение переменной BASS_ErrorGetCode
Миниатюры
Воспроизведение звуковых файлов (wav или mp3)  
1
393 / 121 / 48
Регистрация: 26.10.2013
Сообщений: 734
28.09.2014, 01:29  [ТС] 4
ошибка под номером 2, но почему? сейчас попробую другой файл

Добавлено через 5 минут
попытка открыть другой файл вызвала туже ошибку...

Добавлено через 19 минут
ладно, можно поставить вопрос по другому, как мне в делфи 2010 организовать воспроизведение аудио файла (не важно какого он будет формата), для решения задачи с звуковыми уведомлениями?
0
пофигист широкого профиля
4633 / 3078 / 852
Регистрация: 15.07.2013
Сообщений: 17,744
28.09.2014, 01:37 5
Цитата Сообщение от Wi0M Посмотреть сообщение
sndPlaySound
Во-первых почему sndPlaySound, а не PlaySound?
Во-вторых PlaySound нормально воспроизводит стандартные звуковые файлы.
Приложи этот свой файл к сообщению.
1
393 / 121 / 48
Регистрация: 26.10.2013
Сообщений: 734
28.09.2014, 01:48  [ТС] 6
я вот честно скажу, я не знаю почему sndPlaySound) НО, заработали и PlaySound и sndPlaySound, дело было в самом wav, заменил его и все гуд. ну mp3 менять я пробывал толку 0. хотя было бы интереснее mp3 воспроизводить. файлы прикладываю как и просили.
Вложения
Тип файла: rar test.rar (136.3 Кб, 121 просмотров)
Тип файла: rar 10 .rar (4.32 Мб, 128 просмотров)
0
пофигист широкого профиля
4633 / 3078 / 852
Регистрация: 15.07.2013
Сообщений: 17,744
28.09.2014, 02:02 7
Цитата Сообщение от Wi0M Посмотреть сообщение
я вот честно скажу, я не знаю почему sndPlaySound) НО, заработали и PlaySound и sndPlaySound, дело было в самом wav, заменил его и все гуд. ну mp3 менять я пробывал толку 0. хотя было бы интереснее mp3 воспроизводить.
Я потому и просил приложить файл к сообщению, что был на 90% уверен что сам файл "плохой". Чем-то не стандартный. mp3-файлы PlaySound тоже нормально воспроизводит, если файл "хороший".

Цитата Сообщение от Wi0M Посмотреть сообщение
как мне в делфи 2010 организовать воспроизведение аудио файла (не важно какого он будет формата), для решения задачи с звуковыми уведомлениями?
Если нужно организовать звуковое уведомление, самый лучший путь - формировать звуковые файлы средствами Виндовс. И лучше всего самому.
1
393 / 121 / 48
Регистрация: 26.10.2013
Сообщений: 734
28.09.2014, 02:15  [ТС] 8
хорошо, тогда такой вопрос, в догонку так сказать, как mp3 воспроизвести через PlaySound. вот так у меня не получилось
Delphi
1
2
3
4
5
var
  FileSoundName: string = '\_config\add.mp3';
begin
  PlaySound(PChar(MyDir +FileSoundName), 0, SND_FILENAME);
end;
Добавлено через 5 минут
и как отличить хороший файл от плохого?
0
591 / 543 / 206
Регистрация: 24.01.2012
Сообщений: 1,339
28.09.2014, 12:31 9
через playsound у меня mp3 тоже не воспроизводит. А на счет bass, подозреваю, что преобразование строки в pchar как-то неправильно срабатывает. Для начала можно попробовать через strpcopy из строки сделать array of char и его адрес передавать в функцию BASS_StreamCreateFile
Delphi
1
2
3
4
5
6
var a:array[0..300] of char;
begin
strpcopy(a,filename);
Channel := BASS_StreamCreateFile(FALSE,@a, 0, 0, 0);
if channel<>0 Then BASS_ChannelPlay(Channel, False) Else ShowMessage('Error '+IntToStr(BASS_ErrorGetCode));
end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2014, 12:31
Помогаю со студенческими работами здесь

Воспроизведение файлов wav и mp3
Подскажите пожалуйста как вставить музыку в Pascal ABC.Вот сюда var a,b,d,g,l,t,h,j,e,q,w,aa:...

Воспроизведение wav, mp3, mid файлов на Free Pascal
Здравствуйте, если кто знает подскажите пожалуйста, какой модуль нужно использовать для...

Воспроизведение музыки mp3 или wav
Всем привет! Решил сделать программу, доделал. Осталось лишь музыку поставить в ресурсы и дело с...

Ребята дайте код для воспроизведения файлов wav или mp3
Привет всем! Дайте код для воспроизведения mp3 или wav файла! Буду благодарен)

Воспроизведение звука (любой midi, mp3, wav)
Нужна самая простейшая программа (без всяких там наворотов и кнопок) которая бы воспроизводила звук...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru