私のネイティブコードでは、オーディオパケットを受信しています。次に、それらをJavaに送信して、で遊んでもらいますAudioTrack
。しかし、私はオーディオの吃音を経験します。誰かがAudioTrack
私に現在よりもオーディオを再生するためのより良い方法を説明できるかどうか疑問に思います。
だから、私は次のようにします:
1)Javaで大きなbyte[]
配列を割り当て、それとそのサイズをJNIに渡します
2)ネイティブコードでオーディオパケットの準備ができたら、memcpy
その配列の先頭に移動します
3)次に、オーディオサイズを渡すJNIからJavaコールバックを呼び出してJavaに通知します
4)次にAudioTrack.write
、Javaでその大きなバイト配列と3)からのサイズを渡します。
どういうわけかもっと効率的に行うことができますか?