Проигрываю с помощью MediaPlayer звуковые файлы. Подскажите пожалуйста как сделать так, чтобы по нажатию кнопку СТАРТ или СТОП на медиаплейере ваполнялись еще и другие действия?
" Аноним 655 " <0@users.rsdn.ru> wrote in message news:3788880@news.rsdn.ru... > Проигрываю с помощью MediaPlayer звуковые файлы. Подскажите пожалуйста как сделать так, чтобы по нажатию кнопку СТАРТ или СТОП на медиаплейере ваполнялись еще и другие действия?
begin
MediaPlayer.OtherAction;
end;
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Builder MediaPlayer1
От:
Аноним
Дата:
27.04.10 13:14
Оценка:
Здравствуйте, wellwell, Вы писали:
W>" Аноним 655 " <0@users.rsdn.ru> wrote in message news:3788880@news.rsdn.ru... >> Проигрываю с помощью MediaPlayer звуковые файлы. Подскажите пожалуйста как сделать так, чтобы по нажатию кнопку СТАРТ или СТОП на медиаплейере ваполнялись еще и другие действия? W>
W>begin
W> MediaPlayer.OtherAction;
W>end;
W>
Т.е. я сейчас делаю свои кнопки ButtonStart и ButtonStop и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
А>Т.е. я сейчас делаю свои кнопки ButtonStart и ButtonStop и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
1) Если ты используешь стандартный TMediaPlayer, то открой для себя TMediaPlayer.OnClick() и PostClick() события. Тебе передается, какую кнопку ты нажал.
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
var DoDefault: Boolean);
begin// тут можешь что-то свое сделатьend;
2) Если ты импортируешь Windows MediaPlayer как ActiveX контрол — им можно управлять так (вырезано из рабочего проекта):
// где-то раньше обьявленоvar Media:IWMPMedia;
WMP: TWindowsMediaPlayer;
// .........
WMP.controls.stop; //<-- говорим Stop
WMP.currentPlaylist.clear; //<-- почистили список проигрыванияtry
for i:=0 to Pred(ListBox1.Count) do
begin// добавим список файлов из ListBox в текущий плейлист
Media:=WMP.mediaCollection.add(ListBox1.Items.Strings[i]);
WMP.currentPlaylist.appendItem(Media);
end;
except end;
WMP.currentMedia:=WMP.currentPlaylist.Item[0]; //<-- установили первый элемент для проигрывания
WMP.controls.play; //<-- играем дальше
// .........
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[4]: Builder MediaPlayer1
От:
Аноним
Дата:
27.04.10 13:44
Оценка:
Здравствуйте, DarkMaster, Вы писали:
DM>Здравствуйте, Аноним, Вы писали:
А>>Т.е. я сейчас делаю свои кнопки ButtonStart и ButtonStop и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
DM>1) Если ты используешь стандартный TMediaPlayer, то открой для себя TMediaPlayer.OnClick() и PostClick() события. Тебе передается, какую кнопку ты нажал.
DM>
DM>procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
DM> var DoDefault: Boolean);
DM>begin
DM> // тут можешь что-то свое сделать
DM>end;
DM>
Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
Здравствуйте, Аноним, Вы писали:
А>>>Т.е. я сейчас делаю свои кнопки ButtonStart и ButtonStop и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
DM>>1) Если ты используешь стандартный TMediaPlayer, то открой для себя TMediaPlayer.OnClick() и PostClick() события. Тебе передается, какую кнопку ты нажал.
DM>>
DM>>procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
DM>> var DoDefault: Boolean);
DM>>begin
DM>> // тут можешь что-то свое сделать
DM>>end;
DM>>
А>Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
Э-э-э... Массива чего? И что мешает к стандартному прикрутить свое список с именами файлов для организации примитивного списка проигрывания?
if not (Player.Mode=mpPlaying) then//<--- смотрим статус, если уже отыгралbegin
Player.FileName:=MusicList.Strings[CurIndex]; //<--- след. файл
Player.Open;
Player.Wait:=True; <--- ждать окончания проигрыша
Player.Play;
Player.Close;
Inc(CurIndex); <---- собственно индекс для файла в списке файлов для проигрывания
if CurIndex>=MusicList.Count then CurIndex:=0;
end;
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[6]: Builder MediaPlayer1
От:
Аноним
Дата:
27.04.10 17:26
Оценка:
Здравствуйте, DarkMaster, Вы писали:
DM>Здравствуйте, Аноним, Вы писали:
А>>>>Т.е. я сейчас делаю свои кнопки ButtonStart и ButtonStop и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
DM>>>1) Если ты используешь стандартный TMediaPlayer, то открой для себя TMediaPlayer.OnClick() и PostClick() события. Тебе передается, какую кнопку ты нажал.
DM>>>
DM>>>procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
DM>>> var DoDefault: Boolean);
DM>>>begin
DM>>> // тут можешь что-то свое сделать
DM>>>end;
DM>>>
А>>Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
DM>Э-э-э... Массива чего? И что мешает к стандартному прикрутить свое список с именами файлов для организации примитивного списка проигрывания?
массива с байтами аудиозаписи. Если например Аудиозапись слишком длинная, к примеру несколько сотен мегабайт, то встает вопрос а как проигрывать большой аудиозаписи по блокам (по кускам), вот отсюда и вопрос как проиграть массив? Т.е. я так понимаю надо сделать что то типа:
1) считал кусок аудиозаписи
2) добавил к нему свой ХЕДЕР WAV
3) сохранил в промежуточном файле
4) проиграл (как только закончилось проигрывание куска перейти на пункт 1)
Тогда вопрос как сделать так чтобы не было остановок?
DM>
DM>if not (Player.Mode=mpPlaying) then//<--- смотрим статус, если уже отыграл
DM> begin
DM> Player.FileName:=MusicList.Strings[CurIndex]; //<--- след. файл
DM> Player.Open;
DM> Player.Wait:=True; <--- ждать окончания проигрыша
DM> Player.Play;
DM> Player.Close;
DM> Inc(CurIndex); <---- собственно индекс для файла в списке файлов для проигрывания
DM> if CurIndex>=MusicList.Count then CurIndex:=0;
DM> end;
DM>
Здравствуйте, Аноним, Вы писали:
А>>>Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
А>массива с байтами аудиозаписи. Если например Аудиозапись слишком длинная, к примеру несколько сотен мегабайт, то встает вопрос а как проигрывать большой аудиозаписи по блокам (по кускам), вот отсюда и вопрос как проиграть массив? Т.е. я так понимаю надо сделать что то типа: А>1) считал кусок аудиозаписи А>2) добавил к нему свой ХЕДЕР WAV А>3) сохранил в промежуточном файле А>4) проиграл (как только закончилось проигрывание куска перейти на пункт 1) А>Тогда вопрос как сделать так чтобы не было остановок?
Use DirectSound or DirectShow, Luke
Re[8]: Builder MediaPlayer1
От:
Аноним
Дата:
28.04.10 06:27
Оценка:
Здравствуйте, alxn1, Вы писали:
A>Здравствуйте, Аноним, Вы писали:
А>>>>Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
А>>массива с байтами аудиозаписи. Если например Аудиозапись слишком длинная, к примеру несколько сотен мегабайт, то встает вопрос а как проигрывать большой аудиозаписи по блокам (по кускам), вот отсюда и вопрос как проиграть массив? Т.е. я так понимаю надо сделать что то типа: А>>1) считал кусок аудиозаписи А>>2) добавил к нему свой ХЕДЕР WAV А>>3) сохранил в промежуточном файле А>>4) проиграл (как только закончилось проигрывание куска перейти на пункт 1) А>>Тогда вопрос как сделать так чтобы не было остановок?
A>Use DirectSound or DirectShow, Luke
DirectSound нашел только для C# а надо решение для С++ Builder'a