技术支持

Android开发文档

总体介绍

万视无忧是深圳市云宙多媒体技术有限公司发布的一个视频托管平台,通过该平台可以快速地实现视频服务,本SDK主要介绍如何在android平台上实现基于万视无忧平台的视频播放。


SDK功能

本SDK是基于Android平台的全能多媒体开发框架;
本SDK有着简洁易用的API接口和界面;
本SDK里集成基本播放器,能够流畅播放万视无忧平台上的点播、直播视频;
支持视频清晰度切换;
支持手机端APP和TV端APP的视频播放;
支持DLNA协议,支持甩屏。


SDK使用

1、simopeSDK是播放器核心插件,(大家可以搜一下"Android Library"这个关键字,和jar差不多的用途),可以方便集成到项目中;


2、simopeSamples是播放器的官方例子;

3、启动Eclipse,导入项目simopeSDK;




4、在AndroidManifest.xml里加入相应的标签

a.需要在手机上调用播放

b.需要在TV盒子上调用播放

c.需要启用DLNA服务

5、启动方式
a.移动手机客户端的启动方式
Video video=new Video();      //播放对象Video
video.setPlayAddress ("http://xxx.xxx.xxx.temp.smo"); //播放对象设置播放地址(mp4格式、smo格式、hsm格式等)
video.setTitle("测试播放节目");     //播放对象Video(设置播放标题)
video.setPlayedTime(0);      //设置播放起点
Intent intent=new Intent("当前Activity",MobilePlayActivity.class);
Bundle bundle=new Bundle();
bundle.putSerializable("video", video);
intent.putExtras(bundle);
startActivityForResult(intent,8);

b.TV播放器的启动方式(属性同上)
Video video=new Video();
video.setPlayAddress ("http://xxx.xxx.xxx.temp.smo");
video.setTitle("测试播放节目");
Intent intent=new Intent("当前Activity",TvPlayActivity.class);
Bundle bundle=new Bundle();
bundle.putSerializable("video", video);
intent.putExtras(bundle);
startActivityForResult(intent,8);
遥控器OK按钮,播放暂停
遥控器Menu菜单按钮 对应多码率切换

c.记录历史播放时间



SimopeVideoView和YzVideoView使用API


1. SimopeVideoView使用API

构造函数 功能描述
Public SimopeVideoView ( Context context) 创建一个默认属性的SimopeVideoView实例。参数context 视图运行的应用程序上下文,通过它可以访问当前主题、资源等等。
Public SimopeVideoView (Context context,AttributeSet attrs) 创建一个带有attrs属性的SimopeVideoView实例。参数:context 视图运行的应用程序上下文,通过它可以访问当前 主题、资源等等。attrs 用于视图的 XML标签属性集合。
Public SimopeVideoView (Context context, AttributeSet attrs, int defStyle) 创建一个带有attrs属性,并且指定其默认样式的SimopeVideoView实例。参数context 视图运行的应用程序上下文, 通过它可以访问当前主题、资源等等。attrs 用于视图的XML标签属性集合。defStyle 应用到视图的默认风格。如 果为 0 则不应用(包括当前主题中的)风格。 该值可以是当前主题中的属性资源,或者是明确的风格资源 ID。

2.公共方法:
函数 功能描述
public void start (String uri,int Time) 参数
Uri 需要播放的地址
Time 指定时间点
BuffTime 缓冲时间
public void setVideoPath(String path) 设置播放地址为String
public void setVideoURI(Uri uri) 设置播放地址为Uri
Public void setMediaController (YzMediaController controller) 设置媒体控制器YzMediaController
public void setVideoLayout (int layout, float aspectRatio) 设置屏幕尺寸 0或1
参数scale 为1
适合屏幕保持宽高比
参数scale 为2
填充平布 图像可能变形
public int getBufferPercentage () 获得缓冲区的百分比
public int getCurrentPosition () 获得当前的位置
public int getDuration () 获得所播放视频的总时间
public boolean isPlaying () 判断是否正在播放视频
public boolean isInPlaybackState() 判断播放器不在后台状态
public void start () 开始播放视频文件
public void pause () 使得播放暂停
public void release (boolean cleartargetstate) 播放器暂停并释放资源调用函数
public void seekTo (int msec) 设置播放位置
public void stopPlayback () 停止回放视频文件

3.接口功能描述如下:
接口函数 功能描述
public void setOnPreparedListener(OnPreparedListener l) 注册在设置或播放准备就绪回调函数。
public void setOnBufferingUpdateListener(OnBufferingUpdateListener l) 注册在设置或播放过程中缓冲时调用的回调函数
public void setOnErrorListener(OnErrorListener l) 注册在设置或播放过程中发生错误时调用的回调函数。SimopeVideoView会通知用户发生了错误。
public void setOnInfoListener(OnInfoListener l) 注册在设置或播放过程中发生一些信息时调用的回调函数。
public void
setOnCompletionListener(OnCompletionListener l)
注册在媒体文件播放完毕时调用的回调函数。

4.YzVideoView 使用API
构造函数 功能描述
Public YzVideoView( Context context) 创建一个默认属性的YzVideoView实例。参数context 视图运行的应用程序上下文,通过它可以访问当前主题、资源等等。
Public YzVideoView (Context context,AttributeSet attrs) 创建一个带有attrs属性的YzVideoView实例。
参数:
context 视图运行的应用程序上下文,通过它可以访问 当前主题、资源等等。
attrs 用于视图的 XML标签属性集合。
Public YzVideoView (Context context, AttributeSet attrs, int defStyle) 创建一个带有attrs属性,并且指定其默认样式的YzVideoView实例。
参数
context 视图运行的应用程序上下文 ,通过它可以访问当前主题、资源等等。
attrs 用于视图的XML标签属性集合。
defStyle 应用到视图的默认风 格。如果为 0 则不应用(包括当前主题中的)风格。 该值可以是当前主题中的属性资源,或者是明确的风格资源 ID。

5.公共方法
函数 功能描述
public void start (String uri,int Time,int buffTime) Uri 需要播放的地址
Time 指定时间点
BuffTime 缓冲时间
Public void setMediaController (YzMediaController controller) 设置媒体控制器YzMediaController
public void setVideoScale(int scale) 设置屏幕尺寸 0或1
参数scale 为1
适合屏幕保持宽高比
参数scale 为2
填充平布 图像可能变形
public int getBufferPercentage () 获得缓冲区的百分比
public int getCurrentPosition () 获得当前的位置
public int getDuration () 获得所播放视频的总时间
public boolean isPlaying () 判断是否正在播放视频
public boolean isInPlaybackState() 判断播放器不在后台状态
public void start () 开始播放视频文件
public void pause () 使得播放暂停
public void release() 放器暂停并释放资源调用函数
public void seekTo (int msec) 设置播放位置
public void stopPlayback () 停止回放视频文件
public int getBufTime() 获取播放器缓冲时间

6.接口功能描述如下:
接口函数 功能描述
public void
setmYzOnErrorListener(YzOnErrorListener mYzOnErrorListener)
注册在设置或播放过程中发生错误时调用的回调函数。YzVideoView 会通知用户发生了错误。
public void setmYzOnInfoListener(YzOnInfoListener mYzOnInfoListener) 注册在设置或播放过程中发生一些信息时调用的回调函数。
public void
setmYzOnCompletionListener(YzOnCompletionListener mYzOnCompletionListener)
注册在媒体文件播放完毕时调用的回调函数。



FAQ


1. 使用时请先将simopeSDK工程作为Android Library引入Demo工程
2. 忘加网络权限
< uses-permission android:name="android.permission.INTERNET" />
< uses-permission android:name="android.permission.WAKE_LOCK" />
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3. 在对应的工程里注册MobilePlayActivity、TvPlayActivity
4. 对应activity标签属性
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="sensorLandscape"

5. XML播放器路径没写对,对应2个播放器路径
com.tt.yzvideo.yzvideoview.SimopeVideoView
com.tt.yzvideo.yzvideoview.YzVideoView

6. 多码率地址为云宙私有的.smo地址(如:http://xx.xx.xx..smo),并不是直接的.mp4格式的地址
7. 如果需要DLNA功能,对应AndroidManifest.xml 里注意加入
< service android:name="com.simope.yzvideo.dlna.DLNAService" >


地图支持