2016-03-30 41 views
1

Merhaba Ben Delphi için oldukça yeni ama daha önce programlanmış.Delphi'de TMediaPlayer kullanarak mikrofon girişinden ses nasıl kaydedilir?

Dizüstü bilgisayarın mikrofon girişinden ses kaydetmek istiyorum. Tmediaplayer'ın bir kayıt düğmesi var ancak nasıl kullanacağım konusunda http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/MPlayer_TMediaPlayer_StartRecording.html belgelerini tam olarak anlayamıyorum.

Birisi, Tmediaplayer'ın kayıt için kullanıldığı örnek kodun nasıl kullanıldığına veya nasıl bağlanacağına ilişkin bazı adımları listeleyebilir mi?

Kaydedilen dosya hangi formatta kaydedilir? İçindeki verilerle bir dizi olabilir mi, yoksa bir .WAV dosyası mı?

Yardımlarınız için teşekkür ederiz.

cevap

2

TMediaPlayer.OnClick olayını kullanarak oldukça basit bir kullanımdır. Bu cevap, kullandığınız UI kitaplığını belirtmediğiniz için VCL.TMediaPlayer'ı temel alır.

procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; 
    var DoDefault: Boolean); 
begin 
    case Button of 
    btStop: 
     begin 
     MediaPlayer1.Stop; 
     MediaPlayer1.FileName := 'WhateverYouWant.wav'; 
     MediaPlayer1.Save; 
     end; 
    btRecord: MediaPlayer1.StartRecording; 
    end; 

Diğer düğmeleri ihmal için ihmal ettim.

Dosya türü, kayıt başlatılmadan önce ayarlanması gereken TMediaPlayer.DeviceType özelliği tarafından belirlenir. Listede görebileceğim tek ses kayıt tipi WAV formatıdır.

+0

Doğru, çok teşekkürler @Ken White! Win32 için Delphi® 2007 var, yukarıda belirtildiği gibi aynı kütüphaneyi kullanıyor mu? Ancak, düğmeler formda devre dışı bırakılmıştır. Bu nedenle, dava beyanı için hangi değer değişti? Ayrı düğmeler oluşturmak zorunda mıyım ve daha sonra orada olay işleyicisi bu kodu ekleyelim mi? – Seerit

+0

Evet, aynı bileşen. Düğmelerin formda neden devre dışı bırakıldığını size söyleyemem; Bende bu sorun yok. Sisteminizde yapılandırılmış bir ses kartınız (oynatma için) ve mikrofon (kayıt için) var mı? –

+0

'Nesne denetçisinde' 'autoopen' seçeneğini true olarak yaptım. Bu, oynatma, kaydetme, geri sarma ve hızlı ileri sarma gibi bazı düğmeleri etkinleştirdi. Ancak durdurma düğmesi devre dışı bırakılmıştır. Evet, dizüstü bilgisayarımda, ses kartının çalıştığı ve kayıt için bir mikrofona takılı olduğum var. Tam anlamıyla tmediaplayer'ı formuma ekledim ve sonra yukarıdaki kodu kullandım (bunun için bir tıklama olayı oluşturduğumda). Durma düğmesinin neden çalışmadığından emin değilim. @KenWhite – Seerit