成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于VLC的視頻播放器

移動開發 Android
最近在研究視頻播放的功能,之前是使用VideoView。在網上看了一下,感覺不是很好,支持的格式比較少,現在網絡視頻的格式各種各樣,感覺用VideoView播放起來局限性很大。

最近在研究視頻播放的功能,之前是使用VideoView。在網上看了一下,感覺不是很好,支持的格式比較少,現在網絡視頻的格式各種各樣,感覺用VideoView播放起來局限性很大。

找到了一個比較合適的播放器,Github地址為https://github.com/xiaomo/AndroidPlayerLibrary 。這個播放器是基于vlc這個軟件,在將我們的demo導入到Eclipse中之后,可以發現,這樣一個libvlc文件夾。

在Media這個類中我們可以發現,這些是支持的格式還是比較多的。

  1. String[] video_extensions = { 
  2.                 ".3g2"".3gp"".3gp2"".3gpp"".amv"".asf"".avi"".divx"".drc"".dv"
  3.                 ".f4v"".flv"".gvi"".gxf"".ismv"".iso"".m1v"".m2v"".m2t"".m2ts"
  4.                 ".m4v"".mkv"".mov"".mp2"".mp2v"".mp4"".mp4v"".mpe"".mpeg"
  5.                 ".mpeg1"".mpeg2"".mpeg4"".mpg"".mpv2"".mts"".mtv"".mxf"".mxg"
  6.                 ".nsv"".nut"".nuv"".ogm"".ogv"".ogx"".ps"".rec"".rm"".rmvb"
  7.                 ".tod"".ts"".tts"".vob"".vro"".webm"".wm"".wmv"".wtv"".xesc" }; 
  8.  
  9. String[] audio_extensions = { 
  10.                 ".3ga"".a52"".aac"".ac3"".adt"".adts"".aif"".aifc"".aiff"".amr"
  11.                 ".aob"".ape"".awb"".caf"".dts"".flac"".it"".m4a"".m4b"".m4p"
  12.                 ".mid"".mka"".mlp"".mod"".mpa"".mp1"".mp2"".mp3"".mpc"".mpga"
  13.                 ".oga"".ogg"".oma"".opus"".ra"".ram"".rmi"".s3m"".spx"".tta"
  14.                 ".voc"".vqf"".w64"".wav"".wma"".wv"".xa"".xm" }; 

在這個例子中它自己寫了一個PlayerActivity和PlayerView,在PlayerView中實現了libvlc中的IVideoPlayer接口

在PlayerActivity中實現PlayerView類,從而進行界面和流程的控制。

  1. protected void onCreate(Bundle savedInstanceState) { 
  2.         super.onCreate(savedInstanceState); 
  3.         mUrl = getIntent().getStringExtra("url"); 
  4.         if (TextUtils.isEmpty(mUrl)) { 
  5.             Toast.makeText(this"error:no url in intent!", Toast.LENGTH_SHORT).show(); 
  6.             return
  7.         } 
  8.         requestWindowFeature(Window.FEATURE_NO_TITLE); 
  9.         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
  10.  
  11.         setContentView(R.layout.activity_player); 
  12.  
  13.         mHandler = new Handler(this); 
  14.  
  15.         tvTitle = (TextView) findViewById(R.id.tv_title); 
  16.         tvTime = (TextView) findViewById(R.id.tv_time); 
  17.         tvLength = (TextView) findViewById(R.id.tv_length); 
  18.         sbVideo = (SeekBar) findViewById(R.id.sb_video); 
  19.         sbVideo.setOnSeekBarChangeListener(this); 
  20.         ibLock = (ImageButton) findViewById(R.id.ib_lock); 
  21.         ibLock.setOnClickListener(this); 
  22.         ibBackward = (ImageButton) findViewById(R.id.ib_backward); 
  23.         ibBackward.setOnClickListener(this); 
  24.         ibPlay = (ImageButton) findViewById(R.id.ib_play); 
  25.         ibPlay.setOnClickListener(this); 
  26.         ibFarward = (ImageButton) findViewById(R.id.ib_forward); 
  27.         ibFarward.setOnClickListener(this); 
  28.         ibSize = (ImageButton) findViewById(R.id.ib_size); 
  29.         ibSize.setOnClickListener(this); 
  30.  
  31.         llOverlay = findViewById(R.id.ll_overlay); 
  32.         rlOverlayTitle = findViewById(R.id.rl_title); 
  33.  
  34.         rlLoading = findViewById(R.id.rl_loading); 
  35.         tvBuffer = (TextView) findViewById(R.id.tv_buffer); 
  36.         //使用步驟 
  37.         //***步 :通過findViewById或者new PlayerView()得到mPlayerView對象 
  38.         //mPlayerView= new PlayerView(PlayerActivity.this); 
  39.         mPlayerView = (PlayerView) findViewById(R.id.pv_video); 
  40.  
  41.         //第二步:設置參數,毫秒為單位 
  42.         mPlayerView.setNetWorkCache(20000); 
  43.  
  44.         //第三步:初始化播放器 
  45.         mPlayerView.initPlayer(mUrl); 
  46.  
  47.         //第四步:設置事件監聽,監聽緩沖進度等 
  48.         mPlayerView.setOnChangeListener(this); 
  49.  
  50.         //第五步:開始播放 
  51.         mPlayerView.start(); 
  52.  
  53.         //init view 
  54.         tvTitle.setText(mUrl); 
  55.         showLoading(); 
  56.         hideOverlay(); 
  57.  
  58.     } 

關于如何使用這個類庫

庫兩種使用方式:

***種,直接new一個PlayerView或者在布局文件的xml里面嵌入view。

第二種,跳轉到一個寫好的播放頁面PlayerActivity (本地文件參數格式:file:///sacard/test.rmvb。)

這里我選擇了第二種方法

  1. startActivity(new Intent(this, PlayerActivity.class).putExtra("url", items.get(position))); 

通過一個選擇列表的形式,點擊每一項,傳遞一個url到PlayerActivity

 選擇列表中的1.2JDK下載.mp4

橫豎屏的切換也是沒有問題的。

責任編輯:chenqingxiang 來源: 博客園
相關推薦

2022-11-12 08:26:04

VLC視頻播放器裁剪視頻

2023-08-26 19:07:40

VLC旋轉視頻

2022-08-16 17:37:06

視頻播放器鴻蒙

2011-07-20 16:21:20

iPhone 視頻 播放器

2020-01-13 14:00:06

技巧VLCLinux

2022-06-21 14:41:38

播放器適配西瓜視頻

2018-05-25 14:37:58

2021-10-19 14:27:07

鴻蒙HarmonyOS應用

2021-10-21 16:00:07

鴻蒙HarmonyOS應用

2012-06-04 13:44:08

2023-03-28 09:44:02

開發應用鴻蒙

2023-03-29 09:37:49

視頻播放器應用鴻蒙

2023-03-28 09:38:34

開發應用鴻蒙

2023-03-06 16:20:08

視頻播放器VLC

2015-09-01 16:48:44

ios暴風視頻播放器

2023-03-29 09:32:15

視頻播放器應用鴻蒙

2011-06-24 10:21:11

Qt phonon 多媒體

2011-06-13 09:33:04

2021-10-18 14:57:25

鴻蒙HarmonyOS應用

2019-10-21 09:35:29

Linux開源視頻播放器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级全黄 | 国产1区2区3区 | 日韩在线中文字幕 | 午夜精品久久久久久久星辰影院 | 国产jizz女人多喷水99 | 国产精品69毛片高清亚洲 | 99re视频在线观看 | 成人在线免费观看 | 在线一区视频 | 男女羞羞的网站 | 久草欧美视频 | 草久久 | 久久久久99 | 欧美一级二级在线观看 | 中文字幕高清av | 亚洲国产精品第一区二区 | 日本h片在线观看 | 久久久久久看片 | 久99久视频 | 欧美一区二区三区小说 | 成人一级黄色毛片 | 99资源 | 91久久北条麻妃一区二区三区 | 一级中国毛片 | 国产精品一区久久久 | 涩涩导航 | 国产亚洲精品美女久久久久久久久久 | 国产美女精品视频免费观看 | 成人免费毛片在线观看 | 一区二区三区观看视频 | 一区二区三区免费观看 | 男人的天堂中文字幕 | 男人的天堂久久 | 美女一级a毛片免费观看97 | 日本视频免费观看 | 亚洲久久 | 亚洲第一区久久 | 日韩一区二区在线视频 | 日韩资源| 色综久久 | 成人网址在线观看 |