我有這個用例,其中MediaPlayer的視頻必須傳遞到兩個Surface s。不幸的是,整個Android Surface API缺乏這種功能(或者至少在學習開發者網站後,我無法找到它)。多個android Surface消費者 - 視頻播放到兩個視圖
我有一個simillar用例,其中視頻是由自定義相機模塊生成的,但稍作修改後,我能夠從相機中檢索Bitmap,因此我只在兩個表面上使用了lockCanvas,drawBitmap和unlockAndPost 。有了MediaPlayer,我不知道如何檢索位圖並在適當的時機繼續播放。
另外,我試圖用Allocation爲宗旨,用一個分配作爲USAGE_IO_INPUT,兩成USAGE_IO_OUTPUT,並與ioReceive,具有copyfrom,ioSend方法。但它也是一個死衚衕。對於一些未知的原因,發動機的renderScript是我的平臺上很不穩定,我有很多這樣的錯誤:
android.renderscript.RSInvalidStateException: Calling RS with no Context active.
當傳遞給RenderScript.create背景是這從應用類,或
Failed loading RS driver: dlopen failed: could not locate symbol .... falling back to default
(我在某處丟失了完整的日誌...)。最後,我無法創建適當的輸入分配類型以與MediaPlayer兼容。由於我的平臺上提到了RenderScript的缺陷,我認爲這是解決這個問題的最後手段。
因此,總結:如何播放視頻(從mp4文件)到兩個曲面?此視頻必須同步。此外,更常見的問題,如何播放視頻到#X Surface可以動態添加,在播放過程中移除?