4
我需要爲Android實現視頻DASH客戶端。Android MediaPlayer從InputStream中讀取
在這個時候,我還沒有發現除了寫在一個臨時文件中的任何InputStream
解決方案,然後讀取該文件。當然,這個解決方案根本沒有效率。我想用OutputStream
來使用它的FileDescriptor
作爲數據源。但我不能夠使用有效的FileDescriptor
,而無需創建一個現有的文件...
因爲DASH協議,客戶端具有充電讓所有的(小)段的,所以我真的需要找一個直接從內存中讀取媒體的方式。也許唯一的解決方案是使用JNI,但我真的不知道如何。
要恢復我打開每一個建議。唯一的限制是:
- 起初我有一個
InputStream
- 這可以是任何中間操作,但更有效地
- 獲取有效的輸入養活
MediaPlayer
這似乎很基本,但我找不到任何方法來實現這一目標。謝謝。
您是否找到解決方案?我嘗試使用PipedInputStream和PipedOutputStream來解決這個問題,但他們沒有FileDescriptor來獲取和使用MediaPlayer.setDataSource方法。我也嘗試從PipedInputStream創建一個URI,但還沒有成功。 – Derzu
@Derzu其實我在這上面花了很多時間,最後我放棄了......但讓我知道如果你找到解決方案,請。 – FabiF
我找到了解決方案,但我仍在開發。是創建一個HTTP本地服務器,其中的視頻數據源來自輸入流。所以MediaPlayer從http uri讀取。硒這個帖子:http://stackoverflow.com/questions/9257364/modifying-fileinputstream-for-mediaplayer-setdatasource/9428462 – Derzu