gpt4 book ai didi

java - 使用 Okio 在 Android 上写入文件

转载 作者:行者123 更新时间:2023-12-02 02:03:59 25 4
gpt4 key购买 nike

大家好,我正在从 Android 设备读取原始音频,我想使用 Okio 将其写入文件中像这样:

BufferedSink sink = Okio.buffer(Okio.sink(file));

我有一个回调来检索音频数据,然后将音频数据写入 bufferedSink

@Override
public void onAudioData(byte[] data) {
sink.write(data);
}

但有时,当我收听音频文件时,最后一帧会丢失,并且所有文件的长度均为 8182 字节或其倍数。

如果我使用 FileOutputStream 一切正常,但这是第一种方法,我 future 的目的是使用 Okio Pipes 和 OkHttp 流式传输音频。有谁知道为什么会发生这种情况?

最佳答案

您的代码没有显示sink的完整用法,但看起来您在使用完它后并没有关闭它。因此,只有那些已满的内部段(长度为 8192 字节,因此文件大小应该是该数字的倍数)才会写入磁盘,而最后一个则不会。作为解决方案,您应该 close() 您的 Sink

关于java - 使用 Okio 在 Android 上写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com