簡體   English   中英

使用 Okio 在 Android 上寫入文件

[英]Writing file on Android with Okio

大家好,我正在從 Android 設備讀取原始音頻,我想使用Okio將其寫入文件,如下所示:

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

我有一個回調來檢索音頻數據,然后將音頻數據寫入 bufferedSink

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

但有時,當我聽音頻文件時,最后一幀丟失了,所有文件的長度為 8182 字節或倍數。

如果我使用 FileOutputStream 一切正常,但這是第一種方法,我未來的目的是使用 Okio Pipes 和 OkHttp 流式傳輸音頻。 有誰知道為什么會這樣?

您的代碼沒有顯示sink的完整用法,但是當您完成它時,您似乎沒有關閉它。 因此,只有那些已滿的內部段(長度為 8192 字節,因此您的文件大小應該是該數字的倍數)才會寫入磁盤,而最后一個則不會。 作為解決方案,您應該close()您的Sink

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM