1

Androidフォンでg711 ulaw 8 khz、8ビットサンプルでエンコードされたマルチパートHTTPストリームを介して、Axisネットワークセキュリティカメラからライブオーディオをストリーミングしようとしています。これは非常に簡単なようで、これが私のコードの基礎です。MJPEG ストリームから JPEG フレームを取得したストリーミング コードを再利用した結果、512 バイトのオーディオ データ ブロックが取得され、AudioTrack に渡されます。オーディオはすべて文字化けして歪んでいますが、明らかな何かが欠けていますか?

@Override
public void onResume() {
    super.onResume();
    int bufferSize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT);
    mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, bufferSize, AudioTrack.MODE_STREAM);
    mAudioTrack.play();
    thread.start();
}

class StreamThread extends Thread {
    public boolean running = true;

    public void run() {
        try {
            MjpegStreamer streamer = MjpegStreamer.read("/axis-cgi/audio/receive.cgi?httptype=multipart");

            while(running) {
                byte[] buf = streamer.readMjpegFrame();
                if(buf != null && mAudioTrack != null) {
                    mAudioTrack.write(buf, 0, buf.length);
                }
            }


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
4

0 に答える 0