Android将数据从ByteBuffer存储到存储器

Android将数据从ByteBuffer存储到存储器,android,streaming,bytebuffer,android-broadcastreceiver,Android,Streaming,Bytebuffer,Android Broadcastreceiver,我正在使用第三方sdk广播流,在添加回调后,我成功地获得了ByteBuffer音频,但当我将其保存到SD卡时,无法播放 下面是我的代码片段 long startedTime = -1; @Override public void onAudioBuffer(ByteBuffer byteBuffer, int i, long l) { if (bufferedOutputStream == null) createFile();

我正在使用第三方sdk广播流,在添加回调后,我成功地获得了
ByteBuffer
音频,但当我将其保存到SD卡时,无法播放

下面是我的代码片段

    long startedTime = -1;

    @Override
    public void onAudioBuffer(ByteBuffer byteBuffer, int i, long l) {
        if (bufferedOutputStream == null)
            createFile();
        Log.e(TAG, "i:" + i);
        Log.e(TAG, "l:" + l);
        Log.e(TAG, "byteBuffer capacity:" + byteBuffer.capacity());
        Log.e(TAG, "byteBuffer length:" + byteBuffer.array().length);
        if (startedTime == -1) {
            startedTime = System.currentTimeMillis();
            createFile();
        } else if (System.currentTimeMillis() - startedTime > 10000) {
            try {
                bufferedOutputStream.close();
                startedTime = -1;
            } catch (IOException e) {
                Log.e(TAG, "byteBuffer bufferedOutputStream closing err:" + e.getMessage());
                e.printStackTrace();
            }
            return;
        } else {
            try {
                byte[] bytes = new byte[byteBuffer.capacity()];
                byteBuffer.get(bytes, 0, bytes.length);
                bufferedOutputStream.write(bytes);
                byteBuffer.clear();
            } catch (IOException e) {
                Log.e(TAG, "byteBuffer bufferedOutputStream writhing err:" + e.getMessage());
                e.printStackTrace();
            }
        }
    }
尝试更改此选项:-

try {
            byte[] bytes = new byte[1024];
            byteBuffer.get(bytes, 0, bytes.length);

            bufferedOutputStream.write(bytes);

        } catch (IOException e) {
            Log.e(TAG, "byteBuffer bufferedOutputStream writhing err:" + e.getMessage());
            e.printStackTrace();
        }
最后在操作后关闭byteBuffer或全部copping。

尝试更改此选项:-

try {
            byte[] bytes = new byte[1024];
            byteBuffer.get(bytes, 0, bytes.length);

            bufferedOutputStream.write(bytes);

        } catch (IOException e) {
            Log.e(TAG, "byteBuffer bufferedOutputStream writhing err:" + e.getMessage());
            e.printStackTrace();
        }

最后在操作后关闭byteBuffer或全部复制。

相同的问题无法播放文件写入文件时没有错误,唯一的问题是我无法播放mp3文件您是如何创建文件的?查找扩展名和所有相同的问题无法播放文件写入文件时没有错误,唯一的问题是我无法播放mp3文件您是如何创建文件的?寻找扩展和所有