Builder MediaPlayer1
От: Аноним  
Дата: 27.04.10 12:57
Оценка:
Проигрываю с помощью MediaPlayer звуковые файлы. Подскажите пожалуйста как сделать так, чтобы по нажатию кнопку СТАРТ или СТОП на медиаплейере ваполнялись еще и другие действия?
Re: Builder MediaPlayer1
От: wellwell Австралия https://www.softperfect.com
Дата: 27.04.10 13:07
Оценка:
" Аноним 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 и в них вдобавок к запуску и остановки Медиалэйера еще запускаю и останавливаю ТАЙМЕР. А как сделать это с помощью родных кнопок Медиаплэйера?
Re[3]: Builder MediaPlayer1
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 27.04.10 13:39
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Т.е. я сейчас делаю свои кнопки 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>


Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?
Re[5]: Builder MediaPlayer1
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 27.04.10 13:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>Т.е. я сейчас делаю свои кнопки 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>
Re[7]: Builder MediaPlayer1
От: alxn1 Россия  
Дата: 27.04.10 19:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>Круто!! Спасибо!! А стандартный МедиаПлейер умеет воспроизводить из массива или только из файла?


А>массива с байтами аудиозаписи. Если например Аудиозапись слишком длинная, к примеру несколько сотен мегабайт, то встает вопрос а как проигрывать большой аудиозаписи по блокам (по кускам), вот отсюда и вопрос как проиграть массив? Т.е. я так понимаю надо сделать что то типа:

А>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
Re[9]: Builder MediaPlayer1
От: alxn1 Россия  
Дата: 28.04.10 16:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>DirectSound нашел только для C# а надо решение для С++ Builder'a


Странные дела творятся в нашем мире порой.

http://edn.embarcadero.com/article/20941
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.