有沒有辦法讓媒體文件(audio/video
)在cardview
佈局中運行?我想在card layout
內預覽一個video
文件,當用戶點擊卡片時,video/audio
被全屏播放並播放,就像Facebook的提要一樣。在CardView佈局中運行媒體文件
1
A
回答
12
爲了得到那樣的功能,你必須解決幾個問題:
,因爲它正在擴大
SurfaceView
你不能在列表使用VideoView
,如果回放是和用戶啓動滾動,視覺效果看起來像視頻試圖抓住滾動。因此,您需要一個基於其他內容的特殊VideoView
,例如TextureView
。管理視頻播放狀態:爲了 開始/停止播放,我們需要調用的
MediaPlayer.class
的幾種方法:setDataSource() prepare() start() stop() reset() release()
這些方法是直接調用硬件,它可能需要一些時間在硬件將回應之前。所以我們不能在UI線程中調用它。它會阻塞超過16毫秒,所以用戶會看到一個滯後的滾動列表。我們必須從後臺線程調用它。
您需要在運行時跟蹤屏幕上的哪個視圖處於活動狀態並且應該播放此視圖。
我已經創建了一個名爲VideoPlayerManager一個開源項目。
它被詳細記錄和一些基本流程在演示應用程序中處理。它還沒有準備好生產,但如果你需要一些關於如何獲得這種功能的參考,你可以在那裏找到它。
P.S.關於CardView:這是一個常規視圖。您可以將視頻播放器放入其中並使用CardView播放視頻。
相關問題
- 1. CardView佈局重疊
- 2. Android中的CardView佈局
- 3. 在Wowza媒體服務器上運行本地磁盤媒體文件
- 4. 的OnClick在CardView <include>佈局
- 5. CardView ListView中的佈局只擴展1佈局?
- 6. Susy列媒體佈局查詢
- 7. 響應式佈局 - 媒體查詢
- 8. 三列布局和媒體查詢
- 9. Sitecore媒體文件自動發佈
- 10. 媒體記錄cordova未發佈文件
- 11. 媒體查詢未運行
- 12. 如何在html css佈局中使用媒體查詢
- 13. 在bootstrap/kickstrap中與媒體查詢完全不同的佈局
- 14. 在Windows Media Player Control中發佈媒體文件
- 15. ScrollView/NestedScrollView內的Recyclerview&Cardview(水平佈局)
- 16. 從Azure媒體服務發佈媒體
- 17. 在節點js中運行cytospace.js'cose'佈局
- 18. 從流中找到運行媒體
- 19. 我的cardView佈局沒有顯示出來,而運行應用程序
- 20. 如何在運行時更改佈局資源文件夾?
- 21. 在運行時更改碎片的佈局文件
- 22. 在Django中服務媒體文件
- 23. 在rails中轉換媒體文件
- 24. 在Jframe中播放媒體文件java
- 25. 發佈新媒體文件時文件名總是爲空
- 26. 運行時Silverlight控件佈局更新
- 27. 如何在RecyclerView中創建不同的CardView佈局
- 28. 在cardView + RecyclerView佈局中的Android滾動功能
- 29. 發佈運行時錯誤的媒體播放器
- 30. 自動隱藏android中的媒體播放器佈局
你可以在這裏閱讀關於實現:https://medium.com/@v.danylo/implementing-video-playback-in-a-scrolled-list-listview-recyclerview-d04bc2148429 –