当前位置:编程学习 > JAVA >>

Android AudioTrack类中的两个write函数怎么转换

public int write (byte[] audioData, int offsetInBytes, int sizeInBytes)
public int write (short[] audioData, int offsetInShorts, int sizeInShorts)
我现在取得了一个short[]类型的数据,怎么用第一个函数播放? 
myMP3Decoder.getAudioBuf(audioBuffer, mAudioMinBufSize);    //audioBuffer是short[]类型
mAudioTrack.write(audioBuffer, 0, mAudioMinBufSize);

现需将第二个函数的第一个参数改成byte[]类型,应该怎么转换audioBuffer?

              //直接这样转换后不能正常播放
byte[] mbyte = new byte[2*mAudioMinBufSize];
for(int j=0; j<mAudioMinBufSize; j++){
mbyte[j*2] = (byte)(audioBuffer[j]>>8);
mbyte[j*2+1] = (byte)(audioBuffer[j] & 0xff);
         }
            mAudioTrack.write(mbyte, 0, 2*mAudioMinBufSize); Android AudioTrack
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,