WEB开发网
开发学院手机开发Android 开发 Android通过流播放声音 阅读

Android通过流播放声音

 2013-09-07 21:08:11 来源:WEB开发网   
核心提示:.media.AudioTrack; import android.util.Log; public class Saudioserver extends Thread { protected AudioTrack m_out_trk ; protected int m_out_buf_size ; protected
.media.AudioTrack;
import android.util.Log;

public class Saudioserver extends Thread
{
protected AudioTrack m_out_trk ;
protected int m_out_buf_size ;
protected byte [] m_out_bytes ;
protected boolean m_keep_running ;
private Socket s;
private DataInputStream din;
public void init()
{
try
{
s=new Socket(“192.168.1.100″,4331);
din=new DataInputStream(s.getInputStream());

m_keep_running = true ;

m_out_buf_size = AudioTrack.getMinBufferSize(8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT);

m_out_trk = new AudioTrack(AudioManager.STREAM_MUSIC, 8000,
AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT,
m_out_buf_size,
AudioTrack.MODE_STREAM);

m_out_bytes=new byte[m_out_buf_size];

// new Thread(R1).start();

}
catch(Exception e)
{
e.printStackTrace();
}
}

public void free()
{
m_keep_running = false ;
try {
Thread.sleep(1000) ;
} catch(Exception e) {
Log.d(“sleep exceptions…\n”,”") ;
}
}

public void run()
{
byte [] bytes_pkg = null ;
m_out_trk.play() ;
while(m_keep_running) {
try
{
din.read(m_out_bytes);
bytes_pkg = m_out_bytes.clone() ;
m_out_trk.write(bytes_pkg, 0, bytes_pkg.length) ;
}
catch(Exception e)
{
e.printStackTrace();
}

}

m_out_trk.stop() ;
m_out_trk = null ;
try {
din.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

上一页  1 2 3 4 

Tags:Android 通过 播放

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接