使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優酷視頻)

前言

為了保證每周一篇的進度,又由于Vitamio新版本沒有發布, 決定推遲本地播放的一些功能(截圖、視頻時間、尺寸等),跳過直接寫在線播放部分的章節。從Vitamio的介紹可以看得出,其支持http、m3u8等多種網絡協議,本章將編寫播放優酷視頻的例子。
聲明
歡迎轉載,但請保留文章原始出處:)?
博客園:http://www.cnblogs.com
農民伯伯: http://over140.cnblogs.com?
系列
1、使用Vitamio打造自己的Android萬能播放器(1)——準備
2、使用Vitamio打造自己的Android萬能播放器(2)—— 手勢控制亮度、音量、縮放
3、使用Vitamio打造自己的Android萬能播放器(3)——本地播放(主界面、視頻列表)

  4、使用Vitamio打造自己的Android萬能播放器(4)——本地播放(快捷搜索、數據存儲)

正文
一、目標

1、正式命名"開播視頻",原意:"開源的視頻播放器",也有"開始播放視頻"的簡單意思,希望大家喜歡 :)?

2、采用內嵌優酷(3g.youku.com)?的方式,直接播放視頻文件。

?

?

二、實現

?FragmentOnline

復制代碼
public?class?FragmentOnline?extends?FragmentBase?{

????private?WebView?mWebView;

????@Override
????public?View?onCreateView(LayoutInflater?inflater,?ViewGroup?container,?Bundle?savedInstanceState)?{
????????View?v?=?inflater.inflate(R.layout.fragment_online,?container,?false);
????????mWebView?=?(WebView)?v.findViewById(R.id.webview);
????????mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
????????mWebView.getSettings().setJavaScriptEnabled(true);
????????mWebView.getSettings().setPluginsEnabled(true);
????????mWebView.loadUrl("http://3g.youku.com");
????????mWebView.setWebViewClient(new?WebViewClient()?{
????????????@Override
????????????public?void?onPageFinished(WebView?view,?String?url)?{
????????????};

????????????/**?頁面跳轉?*/
????????????@Override
????????????public?boolean?shouldOverrideUrlLoading(WebView?view,?String?url)?{
????????????????if?(FileUtils.isVideoOrAudio(url))?{
????????????????????Intent?intent?=?new?Intent(getActivity(),?VideoPlayerActivity.class);
????????????????????intent.putExtra("path",?url);
????????????????????startActivity(intent);
????????????????????return?true;
????????????????}
????????????????return?false;
????????????};
????????});

????????mWebView.setOnKeyListener(new?OnKeyListener()?{

????????????@Override
????????????public?boolean?onKey(View?v,?int?keyCode,?KeyEvent?event)?{
????????????????if?((keyCode?==?KeyEvent.KEYCODE_BACK)?&&?mWebView?!=?null?&&?mWebView.canGoBack())?{
????????????????????mWebView.goBack();
????????????????????return?true;
????????????????}
????????????????return?false;
????????????}
????????});
????????return?v;
????}
復制代碼

}?

代碼說明:

? ? ??由于內嵌了3g.youku.com,頁面布局都非常完好,并且里面獲取播放地址非常容易,只需監聽頁面跳轉即可。

a). onKey處理后退事件,返回到上一個頁面

b). 注意WebViewClinet的shouldOverrideUrlLoading方法,如果返回true頁面將不執行跳轉,這里以后還會改進,播放失敗的話直接使用瀏覽器的flash播放。

c). fragment_online的layout這里就不貼了,就是一個WebView控件。?

?

三、下載

?Vitamio-Demo2012-6-15.zip

?

四、警告

視頻、書籍、音樂都是版權很嚴格領域,如何避免版權問題是需要認真考慮的問題。咨詢了朋友,本文采取的方式是可以的,一般以主要判定是否有版權就是看是否去除廣告,恰巧3g.youku.com的視頻都是不帶廣告的,直接的mp4文件播放。

?

  五、相關文章

通過反編譯得到 優酷視頻 真實地址?

youku網視頻地址獲取原理

優酷視頻真實地址解析?

?

  六、Vitamio及相關

Vitamio:http://vov.io?

? VPlayer:http://vplayer.net(使用Vitamio最成功的產品,用戶超過500萬)?

?

結束
這里本來是要取m3u8地址的,也已經取到,但當前版本的vitamio無法播放解析出來的地址,也就直接使用mp4的地址了,簡單方面,這個問題再后 續版本已經修復,從新版的VPlayer大家可以看一下效果。雖然目前為止只是一個Demo,仍努力朝著一款正式的產品方面邁進,希望到系列文章結束時能 正式發布到應用商店供用戶使用,也歡迎大家多提建議~~

轉載于:https://www.cnblogs.com/Free-Thinker/p/4308012.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20個新鮮出爐的網站模板【HTML PSD】

這里給大家分享20 個新鮮出爐的免費網站模板。這些設計元素將成為你下一個項目的重要素材,可以幫你節省很多的時間。與往常一樣,我們經常漫游網絡,尋找最好的資源, HTML、CSS 和 PSD 等等,記得關注啊。 您可能感興趣的…

位運算總結(百科)

位運算 程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算就是直接對整數在內存中的二進制位進行操作。 位運算 - 定義 在很多系統程序中常要求在位(bit)一級進行運算或處理。C語言提供了位運算的功能, 這使得C語言也能像匯編語…

歸檔(轉)

如果是自定義類型的歸檔和解檔&#xff0c;是按以下步驟實現如果不是自定義類型&#xff0c;直接第四步就可以。一、創建一個類User二、在User.h中遵循NSCoding協議 #import <Foundation/Foundation.h> interface User : NSObject<NSCoding> { int _userAge;//例子…

相遇

CPU直接識別的唯一語言是機器語言,為了克服機器語言的缺點,便將機器指令用便于記憶、并能描述指令功能的符號來表示稱為指令助記符簡稱助記符 匯編語言由匯編指令,偽指令,和其它符號組成 匯編指令:機器碼的助記符,有對應的機器碼 偽指令:沒有對應的機器碼由編譯器執行 其它符號…

相識

編譯器&#xff1a;MASM 調試程序&#xff1a;DEBUG 編輯器&#xff1a;EditPlus

MySQL show命令的用法

show tables或show tables from database_name; // 顯示當前數據庫中所有表的名稱show databases; // 顯示mysql中所有數據庫的名稱show columns from table_name from database_name; 或show columns from database_name.table_name; // 顯示表中列名稱show grants for user_n…

怎么用代碼制作WordPress的歸檔頁面

先看看效果&#xff0c;這個是我網站的歸檔頁面&#xff1a;http://www.shenjieblog.com/archives 其實WordPress自帶了一個歸檔的功能&#xff0c;但是只能顯示在網頁中的某一個部分&#xff0c;但是我想單獨制作一個歸檔頁面&#xff0c;因為看見很多網站都有這個&#xff0c…

【web必知必會】—— 使用DOM完成屬性填充

本文介紹了使用DOM的簡單方法實現動態加載圖片的功能。 前文介紹了&#xff1a; 1 DOM四個常用的方法 首先看一下效果&#xff0c;初始時是一個相冊&#xff0c;可以點擊導航&#xff0c;切換圖片&#xff0c;并切換下方顯示內容&#xff1a; 點擊house&#xff0c;可以動態的切…

地址總線 數據總線

地址總線&#xff1a; CPU地址總線的寬度決定了它能尋址多少個內存單元地址,一個CPU有N根地址總線那么它的尋址能力為2^N次方。8086CPU地址總線寬度為20可尋址2^20次方個內存單元地址大小為1M。80386地址總線寬度為32可尋址內存為4GB 數據總線&#xff1a; CPU與存儲器之間的數…

Spring事務配置方式(一) 攔截器方式配置

一、使用<tx:advice>和<aop:config>配置事務 <!-- 配置事務管理器 --><bean id"transactionManager" class"org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name"dataSource" ref&qu…

8086寄存器組

寄存器(14個)|AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES| >通用寄存器 數據寄存器(存放一般數據)AX (AH,AL) | BX (BH,BL) | CX (CH,CL) | DX (DH,DL) 指針寄存器 堆棧指針 基址指針SP BP (SS:SP) 變址寄存器 源地址 目的地址SI …

學習動態性能表(10)--v$session_longops

學習動態性能表 第十篇--V$SESSION_LONGOPS 2007.6.7 本視圖顯示運行超過6秒的操作的狀態。包括備份&#xff0c;恢復&#xff0c;統計信息收集&#xff0c;查詢等等。 要監控查詢執行進展狀況&#xff0c;你必須使用cost-based優化方式&#xff0c;并且&#xff1a; 設置TIME…

存儲器

存儲器以字節為單位存儲信息,一個存儲單元存儲一個字節。一個字需要用兩個連續的存儲單元。 每一個存儲單元有唯一的地址&#xff0c;稱為存儲單元地址。

JDBC常用API小結

建立數據庫鏈接的三種方式&#xff1a; package com.victor_01;import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties;import org.junit.Test;public class Test1 {private String…

學習動態性能表(12)--v$db_object_cache

學習動態性能表 第12篇--V$DB_OBJECT_CACHE 2007.6.4 本視圖提供對象在library cache(shared pool)中對象統計&#xff0c;提供比v$librarycache更多的細節&#xff0c;并且常用于找出shared pool中的活動對象。 v$db_object_cache中的常用列&#xff1a; OWNER&#xff1a;對…

Java Platform Standard Edition 8 Documentation

下面這個圖挺有用的&#xff0c;收藏一下。Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JRE) 8.JDK 8 is a superset of JRE 8, and contains everything that is…

清除端口占用的程序

程序啟動的過程中&#xff0c;有時候會提示“端口被占用”。如何快速的找到占用該端口的進程&#xff1f;網上有很多種方法&#xff0c;這里自己整理了下&#xff0c;使用DOS命令查詢端口并清除端口占用的程序&#xff0c;做個筆記。 windows系統下DOS命令&#xff1a; 1.查看端…

Python進階06 循環對象

Python進階06 循環對象 作者&#xff1a;Vamei 出處&#xff1a;http://www.cnblogs.com/vamei 歡迎轉載&#xff0c;也請保留這段聲明。謝謝&#xff01; 這一講的主要目的是為了大家在讀Python程序的時候對循環對象有一個基本概念。 循環對象的并不是隨著Python的誕生就存在的…

使用 WordPress 主題制作的20個精美網頁

WordPress 是一款個人博客系統&#xff0c;并逐步演化成一款內容管理系統軟件&#xff0c;它是使用 PHP 語言和 MySQL 數據庫開發的。用戶可以在支持 PHP 和 MySQL 數據庫的服務器上使用自己的博客。這里給大家分享使用 WordPress 主題制作的20個精美網頁。 您可能感興趣的相關…