91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解基于VLC的視頻播放器

發布時間:2021-11-26 17:35:54 來源:億速云 閱讀:360 作者:柒染 欄目:移動開發

這期內容當中小編將會給大家帶來有關如何理解基于VLC的視頻播放器,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

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

如何理解基于VLC的視頻播放器

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

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

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

如何理解基于VLC的視頻播放器

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

protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         mUrl = getIntent().getStringExtra("url");         if (TextUtils.isEmpty(mUrl)) {             Toast.makeText(this, "error:no url in intent!", Toast.LENGTH_SHORT).show();             return;         }         requestWindowFeature(Window.FEATURE_NO_TITLE);         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);          setContentView(R.layout.activity_player);          mHandler = new Handler(this);          tvTitle = (TextView) findViewById(R.id.tv_title);         tvTime = (TextView) findViewById(R.id.tv_time);         tvLength = (TextView) findViewById(R.id.tv_length);         sbVideo = (SeekBar) findViewById(R.id.sb_video);         sbVideo.setOnSeekBarChangeListener(this);         ibLock = (ImageButton) findViewById(R.id.ib_lock);         ibLock.setOnClickListener(this);         ibBackward = (ImageButton) findViewById(R.id.ib_backward);         ibBackward.setOnClickListener(this);         ibPlay = (ImageButton) findViewById(R.id.ib_play);         ibPlay.setOnClickListener(this);         ibFarward = (ImageButton) findViewById(R.id.ib_forward);         ibFarward.setOnClickListener(this);         ibSize = (ImageButton) findViewById(R.id.ib_size);         ibSize.setOnClickListener(this);          llOverlay = findViewById(R.id.ll_overlay);         rlOverlayTitle = findViewById(R.id.rl_title);          rlLoading = findViewById(R.id.rl_loading);         tvBuffer = (TextView) findViewById(R.id.tv_buffer);         //使用步驟         //***步 :通過findViewById或者new PlayerView()得到mPlayerView對象         //mPlayerView= new PlayerView(PlayerActivity.this);         mPlayerView = (PlayerView) findViewById(R.id.pv_video);          //第二步:設置參數,毫秒為單位         mPlayerView.setNetWorkCache(20000);          //第三步:初始化播放器         mPlayerView.initPlayer(mUrl);          //第四步:設置事件監聽,監聽緩沖進度等         mPlayerView.setOnChangeListener(this);          //第五步:開始播放         mPlayerView.start();          //init view         tvTitle.setText(mUrl);         showLoading();         hideOverlay();      }

關于如何使用這個類庫

庫兩種使用方式:

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

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

這里我選擇了第二種方法

startActivity(new Intent(this, PlayerActivity.class).putExtra("url", items.get(position)));
通過一個選擇列表的形式,點擊每一項,傳遞一個url到PlayerActivity

如何理解基于VLC的視頻播放器

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

如何理解基于VLC的視頻播放器

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

上述就是小編為大家分享的如何理解基于VLC的視頻播放器了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vlc
AI

冀州市| 秦皇岛市| 阿拉善左旗| 得荣县| 镇坪县| 玉树县| 科尔| 宾川县| 隆昌县| 盐津县| 吉首市| 乐至县| 梁山县| 阳曲县| 方城县| 乃东县| 四会市| 鄂尔多斯市| 黑山县| 临泽县| 淳安县| 南木林县| 柘城县| 西畴县| 即墨市| 裕民县| 西丰县| 延长县| 读书| 江西省| 铜鼓县| 彭泽县| 连州市| 秭归县| 高唐县| 泌阳县| 乳山市| 玉环县| 大安市| 资兴市| 平和县|