本文共 1272 字,大约阅读时间需要 4 分钟。
参考:
建议下载一个铃声文件(小点的),然后用千千静听,转换成wav格式的。
源码如下:
public class Playmp3Activity extends Activity {
private final String file="//sdcard//testring.wav"; private final static String tag="22"; static byte[] buffer=null; AudioTrack at=null; int pcmlen=0; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); try { FileInputStream fis=new FileInputStream(file); buffer=new byte[1024*1024*2];//2M int len=fis.read(buffer); Log.i(tag, "fis len="+len); Log.i(tag, "0:"+(char)buffer[0]); pcmlen=0; pcmlen+=buffer[0x2b]; pcmlen=pcmlen*256+buffer[0x2a]; pcmlen=pcmlen*256+buffer[0x29]; pcmlen=pcmlen*256+buffer[0x28]; int channel=buffer[0x17]; channel=channel*256+buffer[0x16]; int bits=buffer[0x23]; bits=bits*256+buffer[0x22]; Log.i(tag, "pcmlen="+pcmlen+",channel="+channel+",bits="+bits); at = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, channel, AudioFormat.ENCODING_PCM_16BIT, pcmlen, AudioTrack.MODE_STATIC); at.write(buffer, 0x2C, pcmlen); Log.i(tag, "write 1..."); at.play(); Log.i(tag, "play 1..."); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }@Override
protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); at.release(); } }转载地址:http://dupg.baihongyu.com/