物联网视频服务,在Android应用端针对视频播放功能,开发了支持HLS播放协议的云端录像播放器。本文介绍HLS云端录像播放器的基本信息。
背景信息
HLS播放协议类型播放器的基本信息和功能列表,请参见视频播放概述。
播放器类型
HLS播放协议的播放器,支持MPEG-TS和fMP4容器,AES-128加密方式,包括以下两类播放器:
自研HLS播放器
ExoPlayer HLS播放器
推荐您使用自研HLS播放器。
示例代码
请参考如下示例代码,了解自研HLS播放器和ExoPlayer HLS播放器的使用方法。
自研HLS播放器
HlsPlayer player = new HlsPlayer(getApplicationContext());
// 设置Textureview
player.setTextureView(textureView);
// 设置错误监听
player.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(PlayerException exception){
makeToast("errorcode: " + exception.getCode() + "\n" + exception.getMessage());
}
});
// 设置状态监听
player.setOnPlayerStateChangedListener(new OnPlayerStateChangedListener() {
@Override
public void onPlayerStateChange(int playerState){
switch (playerState) {
case Player.STATE_BUFFERING:
break;
case Player.STATE_IDLE:
break;
case Player.STATE_READY:
break;
case Player.STATE_ENDED:
break;
default:
break;
}
}
});
// 设置m3u8地址
player.setDataSource("http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear3/prog_index.m3u8");
// 设置数据源就绪监听器
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(){
// 数据源就绪后开始播放
player.start();
}
});
player.prepare();
...
// 暂停播放
player.pause();
...
// 恢复播放
player.start();
...
// 停止播放
player.stop();
...
// 释放播放器资源
player.release();
...
ExoPlayer HLS播放器
ExoHlsPlayer player = new ExoHlsPlayer(getApplicationContext());
// 设置textureview
player.setTextureView(textureView);
// 也可以使用Exo的SimpleExoPlayerView来作为播放器的UI组件
// simpleExoPlayerView.setPlayer(player.getExoPlayer());
// simpleExoPlayerView.requestFocus();
// 设置错误监听
player.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(PlayerException exception){
makeToast("errorcode: " + exception.getCode() + "\n" + exception.getMessage());
}
});
// 设置状态监听
player.setOnPlayerStateChangedListener(new OnPlayerStateChangedListener() {
@Override
public void onPlayerStateChange(int playerState){
switch (playerState) {
case Player.STATE_BUFFERING:
break;
case Player.STATE_IDLE:
break;
case Player.STATE_READY:
break;
case Player.STATE_ENDED:
break;
default:
break;
}
}
});
// 设置m3u8地址
player.setDataSource("http://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/gear3/prog_index.m3u8");
// 设置数据源就绪监听器
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(){
// 数据源就绪后开始播放
player.start();
}
});
player.prepare();
...
// 暂停播放
player.pause();
...
// 恢复播放
player.start();
...
// 停止播放
player.stop();
...
// 释放播放器资源
player.release();
...
// 截图
textureview.getBitmap();
文档内容是否对您有帮助?