簡體   English   中英

如何使用 Android MediaPlayer 按字節塊播放音頻數據

[英]how to use Android MediaPlayer to play audio data by chunks of bytes

我是音頻格式的新手。

我正在嘗試在設備 A 上播放音頻數據,因為我從設備 B 接收到它,一個塊一個塊。 問題是簡單地逐塊播放不會產生任何聲音。 如果我組合所有塊然后播放,它工作正常。 但是我想讓應用程序播放實時數據,這意味着我想在收到它的那一刻播放部分音頻數據,即使完整的音頻文件尚未發送。 我想塊必須采用某種格式才能播放。

我在網上搜索並了解到只要每個塊都有一個標題,就可以分塊播放 MPEG_4。 我想知道是否可以手動為每個塊添加一個標題。

我嘗試記錄多個樣本,並注意到它們在開頭都有共同的字節,如下所示:

0000 0018 6674 7970 6d70 3432 0000 0000
6973 6f6d 6d70 3432 0000 ....the rest..

這些公共字節是頭嗎?我想知道設備A是否可以通過某種方式判斷某個塊是否可以播放,以便我一收到它就可以播放該塊?

關於這個問題的任何想法都會有所幫助! 提前致謝!

我想自己回答這個問題。

首先,不要堅持使用 MediaPlayer,因為它不能錄制 PCM 文件。

實際上,PCM 文件滿足所有要求,因為它應用原始文件格式(意味着它沒有被壓縮)。 可以逐幀播放PCM文件。 一旦在記錄器和播放器中定義了采樣率和其他參數,幀的大小(例如 640 字節)就固定了。

還要檢查AudioRecordAudioTrack類,因為它可以記錄和播放 PCM 文件。

暫無
暫無

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

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