android視頻分段
⑴ Android實現視頻播放的幾種方式
Android提供了常見的視頻編碼,解碼機制,使用Android自帶的MediaPlayer,MediaController等類可以很方便的實現視頻播放的功能。支持的視頻格式有MP4和3GP等。這些多媒體數據可以來自於Android應用的資源文件,也可以來自於外部存儲器上的文件,甚至可以是來自於網路上的文件流。
1、MediaController+VideoView實現方式
這種方式是最簡單的實現方式。VideoView繼承了SurfaceView同時實現了MediaPlayerControl介面,MediaController則是安卓封裝的輔助控制器,帶有暫停,播放,停止,進度條等控制項。通過VideoView+MediaController可以很輕松的實現視頻播放、停止、快進、快退等功能。
布局文件如下:
使用此實現方式的步驟:
1.載入指定的視頻文件
2.建立VideoView和MediaController之間的關聯,這樣就不需要自己去控制視頻的播放、暫停等。讓MediaController控制即可。
3.VideoView獲取焦點。
2、MediaPlayer+SurfaceView+自定義控制器
雖然VideoView的實現方式很簡單,但是由於是自帶的封裝好的類,所以無論是播放器的大小、位置以及控制都不受我們控制。
這種實現方式步驟如下:
1.創建MediaPlayer對象,並讓它載入指定的視頻文件。可以是應用的資源文件、本地文件路徑、或者URL。
2.在界面布局文件中定義SurfaceView組件,並為SurfaceView的SurfaceHolder添加Callback監聽器。
3.調用MediaPlayer對象的setDisplay(SurfaceHolder sh)將所播放的視頻圖像輸出到指定的SurfaceView組件。
4.調用MediaPlayer對象的prepareAsync()或prepare()方法裝載流媒體文件
5.調用MediaPlayer對象的start()、stop()和pause()方法來控制視頻的播放。
在實現第二步之前需要先給surfaceHolder設置一個callback,callback的3個回調函數如下:
3、MediaPlayer+SurfaceView+MediaController
第二種實現方式使用的是自定義控制項,MediaPlayer+SurfaceView也可以使用系統自帶的MediaController控制器。
使用這個方式實現,布局文件只需一個SurfaceView即可,其他的控制項都交給MediaController控制器,布局文件如下:
實際過程中推薦大家使用B站的播放器ijkplayer非常好用!
⑵ android開發 優酷的分段視頻 怎麼播放
http://open.youku.com/docs/
⑶ android如何實現截取視頻中的某一段視頻
不知道你是否是用camera邊錄制邊實現。如果是再android上(其他的我就不清楚了),我個人想法是可以通過vsync來判斷,每一次來vsync都會對應到底層的一個dma地址,若想要抓取數據,可以從這個地址開始抓取,一個解析度的大小,出來便是一幀。視頻的話可以反復來實現。祝你好運。
⑷ android 視頻 p2p
p2p可能不能實現實時播放。因為p2p是分段傳輸的,有可能你傳輸了尾部的一段視頻,前面的視頻段還沒穿,造成播放卡頓。
要是實時傳輸,還是兩台電腦之間通過udp協議直接傳的好。
或者給p2p加上限制,視頻段必須按順序傳播。
說實話我不太看得懂你的意思。
如果你說的是獲取別人手機上的視頻並邊下載邊播放的話,那麼udp協議傳輸文件即可。
如果你說的是獲取別人正在錄制的視頻並播放的話,那麼有點類似視頻通話,兩個埠同步傳輸圖像和文件,還是用udp協議。
所以我不知道你為什麼要糾結於p2p?