java audiotrack_java – 流媒体模式MODE_STREAMING中的AudioTrack

这是一个适合我的简短示例:

public class Internal extends Activity

{

@Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

public void onPlayClicked(View v)

{

start();

}

public void onStopClicked(View v)

{

stop();

}

boolean m_stop = false;

AudioTrack m_audioTrack;

Thread m_noiseThread;

Runnable m_noiseGenerator = new Runnable()

{

public void run()

{

Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

/* 8000 bytes per second, 1000 bytes = 125 ms */

byte [] noiseData = new byte[1000];

Random rnd = new Random();

while(!m_stop)

{

rnd.nextBytes(noiseData);

m_audioTrack.write(noiseData, 0, noiseData.length);

}

}

};

void start()

{

m_stop = false;

/* 8000 bytes per second*/

m_audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO,

AudioFormat.ENCODING_PCM_8BIT, 8000 /* 1 second buffer */,

AudioTrack.MODE_STREAM);

m_audioTrack.play();

m_noiseThread = new Thread(m_noiseGenerator);

m_noiseThread.start();

}

void stop()

{

m_stop = true;

m_audioTrack.stop();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值