Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2011, 23:24   #1
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию Остановить звук

{$R data.res} (это пишешь после слова implementation)

PlaySound('DATA', HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP) (это пишешь там, где нужно проиграть звук)

обращение производится по имени ресурса (ресурс мы назвали в текстовом файле как DATA, тип WAVE)
SND_RESOURCE - проигрывание звука из ресурса
SND_ASYNC - чтоб программа не зависала во время воспроизведения
SND_LOOP - играет по кругу, если не надо не пиши


вот нашел как можно сделать музыку в программе а как ее можно остановить ???


и так же как сделать что бы в MediaPlayer1 зациклить песню???
cargo29 вне форума Ответить с цитированием
Старый 22.03.2011, 23:37   #2
~Psycho~
Пользователь
 
Аватар для ~Psycho~
 
Регистрация: 11.12.2010
Сообщений: 44
По умолчанию

1. Если пользуешься TMediaPlayer, то

Цитата:
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
MediaPlayer1.Stop;
end;
2. Попробуй так
Цитата:
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Notify := True;
MediaPlayer1.OnNotify := NotifyProc;
end;


procedure TForm1.NotifyProc(Sender: TObject);
begin
with Sender as TMediaPlayer do
begin
case Mode of
mpStopped: {do something here};
end;
//must set to true to enable next-time notification
Notify := True;
end;
end;
Отражаю отношение к себе
~Psycho~ вне форума Ответить с цитированием
Старый 22.03.2011, 23:44   #3
~Psycho~
Пользователь
 
Аватар для ~Psycho~
 
Регистрация: 11.12.2010
Сообщений: 44
По умолчанию

SND_APPLICATION Звук воспроизводится с использованием установок приложения.
SND_ALIAS Параметр pszSound определяет псевдоним системного события в реестре Windows или в файле WIN.INI. Нельзя использовать совместно с SND_FILENAME и SND_RESOURCE.
SND_ALIAS_ID Параметр szSound является предопределенным идентификатором звука.
SND_ASYNC Звук воспроизводится асинхронно и функция PlaySound возвращается немедленно после начала воспроизведения. Чтобы прекратить асинхронное воспроизведение волнового файла, надо вызвать PlaySound с параметром pszSound, равным 0.
SND_FILENAME Параметр pszSound является именем файла.
SND_LOOP Воспроизведение звука постоянно повторяется, пока не вызовется PlaySound с параметром pszSound, равным 0. Одновременно надо указать флаг SND_ASYNC асинхронного воспроизведения звука.
SND_MEMORY Файл звука события загружен в память. В этом случае параметр pszSound должен указывать на образ звука в памяти.
SND_NODEFAULT Звук события, кроме звука по умолчанию. Если указанный звук не найден, PlaySound вернется, не воспроизводя звук по умолчанию.
SND_NOSTOP Если заданный звук не может быть воспроизведен, поскольку ресурсы, необходимые для воспроизведения, заняты воспроизведением другого звука, функция PlaySound немедленно вернет false, не воспроизводя заданного звука. Если данный флаг не указан, функция PlaySound пытается остановит воспроизведение другого звука, чтобы устройство могло быть использовано для воспроизведения нового звука.
SND_NOWAIT Если драйвер занят, функция сразу вернется без воспроизведения заданного звука.
SND_PURGE Останавливается воспроизведение любых звуков, вызванных в данной задаче. Если pszSound не 0, останавливаются все экземпляры указанного звука. Если pszSound равен 0, то останавливаются все звуки, связанные с данной задачей. Отдельно надо указать дескриптор для остановки событий SND_RESOURCE.
SND_RESOURCE Параметр pszSound является идентификатором ресурса. Параметр hmod должен указывать на источник ресурса.
SND_SYNC Синхронное воспроизведение звука события. Функция PlaySound возвращается только после окончания воспроизведения.
Возвращаемое значение

При успешном выполнении возвращается true, в противном случае - false.


Описание

Для использования функции надо включить в оператор uses вашего приложения ссылку на mmsystem.
Звук, указанный параметром pszSound, должен помещаться в доступную память и должен подходить для установленного драйвера устройства воспроизведения волновых файлов. Функция PlaySound ищет файл звука в следующих каталогах: текущем, каталоге Windows, системном каталоге Windows, каталогах, перечисленных в переменной среды PATH, в списке каталогов, предоставляемых сетью. Более подробно последовательность поиска в каталогах рассмотрена в документации по функции OpenFile.

Если указанный звук не находится, функция PlaySound воспроизводит системный звук по умолчанию. Если функция не может найти и его, то воспроизведения не будет, а вернется значение false.
Отражаю отношение к себе
~Psycho~ вне форума Ответить с цитированием
Старый 23.03.2011, 08:16   #4
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Код:
library dll;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  MMSystem,
  ShellApi, dialogs,
  Classes;

{$R *.res}

{$R music2.res}
{$R music4.res}
{$R music5.res}
{$R music6.res}
{$R music7.res}



Procedure music1;
begin
PlaySound('MUSIC2',HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP);
end;
exports music1;

Procedure music2;
begin
PlaySound('MUSIC4',HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP);
end;
exports music2;

Procedure music3;
begin
PlaySound('MUSIC5',HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP);
end;
exports music3;

Procedure music4;
begin
PlaySound('MUSIC6',HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP);
end;
exports music4;

Procedure music5;
begin
PlaySound('MUSIC7',HInstance, SND_RESOURCE + SND_ASYNC + SND_LOOP);
end;
exports music5;

Procedure stop;
begin
PlaySound('MUSIC7',HInstance,  SND_NOSTOP+SND_PURGE );
end;
exports stop;







begin
end.
моя библиотека длл


это правильно написано что бы остановить????


Procedure stop;
begin
PlaySound('MUSIC7',HInstance, SND_NOSTOP+SND_PURGE );
end;
exports stop;
cargo29 вне форума Ответить с цитированием
Старый 23.03.2011, 08:37   #5
cargo29
Форумчанин
 
Регистрация: 13.12.2010
Сообщений: 603
По умолчанию

Цитата:
Сообщение от ~Psycho~ Посмотреть сообщение
1. Если пользуешься TMediaPlayer, то



2. Попробуй так
не работает песня заканчивается и все .... ))) есть еще какие нить варианты??
cargo29 вне форума Ответить с цитированием
Старый 23.03.2011, 17:51   #6
~Psycho~
Пользователь
 
Аватар для ~Psycho~
 
Регистрация: 11.12.2010
Сообщений: 44
По умолчанию

Цитата:
Procedure stop;
begin
PlaySound('MUSIC7',HInstance,
SND_NOSTOP+SND_PURGE );
end;
exports stop;
А бог его знает, сам новичек)
Отражаю отношение к себе
~Psycho~ вне форума Ответить с цитированием
Старый 24.03.2011, 04:06   #7
Посланник
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 13
По умолчанию

вы зачем себе жизнь то усложняете? если вам нужен просто звук то в TMediaPlayer есть все для этого. а если мало то подрубаем библиотеку Bass.dll хорошие дядички ее написали ктогда то. на ней основан плеер AIMP2 например
Посланник вне форума Ответить с цитированием
Старый 24.03.2011, 04:24   #8
Посланник
Пользователь
 
Регистрация: 21.03.2011
Сообщений: 13
По умолчанию

кидаем на форму таймер. кидаем на форму медиаплеер. выставляем свойства autoopen:=true;
filename='какая то музяка.mp3';

таймеру ставим интервал минимальный. ну например timer1.interval:=1;

по тику таймера пишем
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if MediaPlayer1.Position>=MediaPlayer1.Length then
begin
MediaPlayer1.Position:=0;
MediaPlayer1.Play;
end;
end;
а по созданию формы пишем
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
mediaplayer1.Play;
end;
Посланник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Звук Звууууук Звук ... не рабоает звук.. Zvuuuuk Компьютерное железо 2 22.01.2011 17:53
Тюнер для гитары в делфи. (Считывать с микрофона звук и выводить какой частоты этот звук). Серего Мультимедиа в Delphi 8 12.01.2011 14:39
Остановить цикл for basten Общие вопросы C/C++ 1 30.03.2010 11:40
Остановить цикл mavlon_m Общие вопросы Delphi 4 04.08.2009 17:00
звук и делфи, левый правый звук snusmumric Win Api 2 29.10.2007 11:10