Streaming Audio zu Java-Applikation

  • 0 Antworten
  • Letztes Antwortdatum
F

forTAT

Neues Mitglied
0
Hallo zusammen

Ich möchte von meinem Android-Tablet (Nexus 7) Audio zu einem PC streamen. Auf diesem PC läuft ein Programm, welches den Stream direkt abspielt. Mehr nicht.

In einem separaten Thread versuche ich den Stream folgenderweise aufzubauen:

Code:
DatagramSocket datagramSocket = new DatagramSocket(INITIAL_PORT, InetAddress.getLocalHost());
pfd = ParcelFileDescriptor.fromDatagramSocket(datagramSocket);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

 //reading data from MIC
 recorder.setOutputFile(pfd.getFileDescriptor());
 recorder.prepare();
 recorder.start();
Es werden jedoch keine Daten übertragen, wenn ich den Thread starte.
Ich weiss auch nicht, wo ich die Ziel-IP angeben muss.
Als Endstelle bin ich am Überlegen, ob ich einen VLC-Client einrichten soll.

Das selbe für die Version mit AudioStream.
Code:
AudioGroup audioGroup = new AudioGroup();
audioGroup.setMode(AudioGroup.MODE_NORMAL);
AudioStream audioStream = new AudioStream(InetAddress.getLocalHost());
int port = audioStream.getLocalPort();
// tell other side which port to use (this works)
daos.writeInt(port);

audioStream.setCodec(AudioCodec.PCMU);
audioStream.setMode(RtpStream.MODE_SEND_ONLY);
audioStream.associate(adr, port);
audioStream.join(audioGroup);
AudioManager Audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Audio.setMode(AudioManager.MODE_IN_COMMUNICATION);
Empfängerseite:
Wie erstelle ich die Endstelle mit einem UDP-Socket?
Code:
DatagramSocket datagramSocket = new DatagramSocket(port);
System.out.println("Waiting for audio data...");  
source = AudioSystem.getAudioInputStream(????.getInputStream());
AudioSystem.getAudioInputStream(AudioFormat.Encoding.ULAW, source);
byte[] audioData = new byte[4096];
source.read(audioData, 0, 4096);
toSpeaker(audioData);
Kann mir jemand auf die Sprünge helfen? Super wäre es, wenn beide Möglichkeiten laufen würden.
 
Zurück
Oben Unten