Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to play sound from a IP in java with Android
    primarykey
    data
    text
    <p>I want to run a radio station from a hill top with the studio in the valley using a radio Ethernet link of 1.1 mbs data rate below is an example code (below) that I found.</p> <p>But I want the code to:</p> <ol> <li>Load a text file containing the IPv4 IP address to receive sound</li> <li>Read a true or false from the file re transmit from the android for another to receive to save data on such a slow connection.</li> </ol> <p>Can someone help please?</p> <pre><code>import java.io.IOException; import java.util.Vector; import javax.media.CaptureDeviceInfo; import javax.media.CaptureDeviceManager; import javax.media.DataSink; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.NoProcessorException; import javax.media.NotRealizedError; import javax.media.Player; import javax.media.Processor; import javax.media.control.FormatControl; import javax.media.control.TrackControl; import javax.media.format.AudioFormat; import javax.media.protocol.ContentDescriptor; import javax.media.protocol.DataSource; public class SimpleVoiceTransmiter { /** * @param args */ public static void main(String[] args) { // First find a capture device that will capture linear audio // data at 8bit 8Khz AudioFormat format= new AudioFormat(AudioFormat.LINEAR, 8000, 8, 1); Vector devices= CaptureDeviceManager.getDeviceList( format); CaptureDeviceInfo di= null; if (devices.size() &gt; 0) { di = (CaptureDeviceInfo) devices.elementAt( 0); } else { // exit if we could not find the relevant capturedevice. System.exit(-1); } // Create a processor for this capturedevice &amp; exit if we // cannot create it Processor processor = null; try { processor = Manager.createProcessor(di.getLocator()); } catch (IOException e) { System.exit(-1); } catch (NoProcessorException e) { System.exit(-1); } // configure the processor processor.configure(); while (processor.getState() != Processor.Configured){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } processor.setContentDescriptor( new ContentDescriptor( ContentDescriptor.RAW)); TrackControl track[] = processor.getTrackControls(); boolean encodingOk = false; // Go through the tracks and try to program one of them to // output gsm data. for (int i = 0; i &lt; track.length; i++) { if (!encodingOk &amp;&amp; track[i] instanceof FormatControl) { if (((FormatControl)track[i]). setFormat( new AudioFormat(AudioFormat.GSM_RTP, 8000, 8, 1)) == null) { track[i].setEnabled(false); } else { encodingOk = true; } } else { // we could not set this track to gsm, so disable it track[i].setEnabled(false); } } // At this point, we have determined where we can send out // gsm data or not. // realize the processor if (encodingOk) { processor.realize(); while (processor.getState() != Processor.Realized){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // get the output datasource of the processor and exit // if we fail DataSource ds = null; try { ds = processor.getDataOutput(); } catch (NotRealizedError e) { System.exit(-1); } // hand this datasource to manager for creating an RTP // datasink our RTP datasink will multicast the audio try { String url= "rtp://224.0.0.1:22224/audio/16"; MediaLocator m = new MediaLocator(url); DataSink d = Manager.createDataSink(ds, m); d.open(); d.start(); processor.start(); } catch (Exception e) { System.exit(-1); } } } } </code></pre> <p>Receiver:</p> <pre><code>import java.io.IOException; import java.net.MalformedURLException; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.Player; public class SimpleVoiceReciver{ /** * @param args */ public static void main(String[] args) { String url= "rtp://192.168.1.111:22224/audio/16"; MediaLocator mrl= new MediaLocator(url); if (mrl == null) { System.err.println("Can't build MRL for RTP"); System.exit(-1); } // Create a player for this rtp session Player player = null; try { player = Manager.createPlayer(mrl); } catch (NoPlayerException e) { System.err.println("Error:" + e); System.exit(-1); } catch (MalformedURLException e) { System.err.println("Error:" + e); System.exit(-1); } catch (IOException e) { System.err.println("Error:" + e); System.exit(-1); } if (player != null) { System.out.println("Player created."); player.realize(); // wait for realizing while (player.getState() != Player.Realized){ try { Thread.sleep(10); } catch (InterruptedException e) { e.printStackTrace(); } } player.start(); } else { System.err.println("Player doesn't created."); System.exit(-1); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload