2011-01-28 16 views
11

Chcę nagrać głos za pomocą aplikacji Java; Domyślam się, że będzie to w zasadzie aplet, który będzie działał po stronie klienta. Ale nie mam pojęcia, jak to zrobić ... żadnych pomysłów? Poza tym chcę odtwarzać nagrany głos.Nagrywanie głosu za pomocą Java

Słyszałem o Java Speech API. Masz pomysł, czy to może pomóc?

+0

spójrz na: http://ditra.cs.umu.se/jmf2_0-guide-html/JMFCapturing.html – pingw33n

+0

@ pingw33n - zbyt skomplikowany by zrozumieć :( – Varun

Odpowiedz

7

Jestem późno do partii, ale tutaj są oficjalnymi Docs na przechwytywanie audio: http://docs.oracle.com/javase/tutorial/sound/capturing.html

(i kopiowane bezpośrednio z linku powyżej Oto niektóre przykładowy kod to zrobić :)

TargetDataLine line; 
DataLine.Info info = new DataLine.Info(TargetDataLine.class, 
       format); // format is an AudioFormat object 
if (!AudioSystem.isLineSupported(info)) { 
    // Handle the error ... 

} 
// Obtain and open the line. 
try { 
    line = (TargetDataLine) AudioSystem.getLine(info); 
    line.open(format); 
} catch (LineUnavailableException ex) { 
    // Handle the error ... 
} 

// Assume that the TargetDataLine, line, has already 
// been obtained and opened. 
ByteArrayOutputStream out = new ByteArrayOutputStream(); 
int numBytesRead; 
byte[] data = new byte[line.getBufferSize()/5]; 

// Begin audio capture. 
line.start(); 

// Here, stopped is a global boolean set by another thread. 
while (!stopped) { 
    // Read the next chunk of data from the TargetDataLine. 
    numBytesRead = line.read(data, 0, data.length); 
    // Save this chunk of data. 
    out.write(data, 0, numBytesRead); 
} 
+0

w twoim przykładzie Mam błąd w linii zatrzymanej, czy możesz pomóż mi – Abderrahim

+0

Napisałem to 4+ lata temu ... i skopiowałem go z tego adresu URL, ale zakładam, że masz błędy kompilacji? Zmienna opped jest właściwie zmienną zastępczą dla zmiennej, którą powinieneś ustawić/utworzyć/utrzymywać w innym miejscu, aby wiedzieć, czy masz przestać nagrywać. Jest więc bardzo szczególne w twoim przypadku. – xbakesx

Powiązane problemy