日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android videoview属性,Android VideoView

發布時間:2024/1/23 Android 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android videoview属性,Android VideoView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VideoView,用于播放一段視頻媒體,它繼承了SurfaceView,位于"android.widget.VideoView",是一個視頻控件。

既然是播放一段視頻,那么不可避免的要涉及到一些開始、暫停、停止等操作,VideoView也為開發人員提供了對應的方法,這里簡單介紹一些常用的:

int getCurrentPosition():獲取當前播放的位置。

int getDuration():獲取當前播放視頻的總長度。

isPlaying():當前VideoView是否在播放視頻。

void pause():暫停

void seekTo(int msec):從第幾毫秒開始播放。

void resume():重新播放。

void setVideoPath(String path):以文件路徑的方式設置VideoView播放的視頻源。

void setVideoURI(Uri uri):以Uri的方式設置VideoView播放的視頻源,可以是網絡Uri或本地Uri。

void start():開始播放。

void stopPlayback():停止播放。

setMediaController(MediaController controller):設置MediaController控制器。

setOnCompletionListener(MediaPlayer.onCompletionListener l):監聽播放完成的事件。

setOnErrorListener(MediaPlayer.OnErrorListener l):監聽播放發生錯誤時候的事件。

setOnPreparedListener(MediaPlayer.OnPreparedListener l)::監聽視頻裝載完成的事件。

上面的一些方法通過方法名就可以了解用途。和MediaPlayer配合SurfaceView播放視頻不同,VideoView播放之前無需編碼裝載視頻,它會在start()開始播放的時候自動裝載視頻。并且VideoView在使用完之后,無需編碼回收資源。

有播放視頻時需要獲取視頻的某一幀的圖片進行操作,這時MediaMetadataRetriever類就派上了用場:

MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever();

mediaMetadataRetriever.setDataSource(dataPath);

獲取一幀的關鍵代碼為:

Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(timeMs * 1000, MediaMetadataRetriever.OPTION_CLOSEST);

public Bitmap getFrameAtTime(long timeUs, int option)

第一個參數是傳入時間,只能是us(微秒)

第二個參數:

OPTION_CLOSEST 在給定的時間,檢索最近一個幀,這個幀不一定是關鍵幀。

OPTION_CLOSEST_SYNC 在給定的時間,檢索最近一個同步與數據源相關聯的的幀(關鍵幀)。

OPTION_NEXT_SYNC 在給定時間之后檢索一個同步與數據源相關聯的關鍵幀。

OPTION_PREVIOUS_SYNC 顧名思義,同上

這里為了提取我們想要的幀,不使用關鍵幀,所以用 OPTION_CLOSEST .

最終的測試結果并不理想,連續取20幀畫面,其中真正有效的只有7張,其余都是重復的,原因為即使是使用參數OPTION_CLOSEST,程序仍然會去取指定時間臨近的關鍵幀,如10s-15s總是取同一幀,因此這種方法不可用。

提高視頻的質量或許有效,未嘗試。

補充MediaMetadataRetriever的其他知識

// 取得視頻的總長度(單位為毫秒)

String time = mediaMetadataRetriever. extractMetadata( MediaMetadataRetriever. METADATA_KEY_DURATION);

MediaMetadataRetriever主要用來取縮略圖。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android videoview属性,Android VideoView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。