标准直播播放

阿里云Android播放器SDK支持标准直播播放(RTMP/FLV/HLS等格式),本文介绍标准直播播放的实现方法。

重要

更多功能、API文档及常见问题,请参考Android播放器

操作步骤

步骤一:集成SDK

请参考Android播放器集成SDK进行集成。

步骤二:实现直播播放

  1. 快速开始。

    请参考Android播放器快速开始实现基础播放功能。

  2. 设置直播播放源。

    Android播放器SDK支持2种直播播放方式,UrlSource播放和加密播放。

    直播UrlSource播放

    使用UrlSource播放方式播放直播视频,需要将播放器的setUrl属性设置为直播拉流地址。播放地址可以是第三方直播地址或阿里云直播服务中的拉流地址。

    阿里云直播拉流地址可以通过直播控制台的地址生成器生成。详情请参见直播地址生成器

    UrlSource urlSource = new UrlSource();
            urlSource.setUri("播放地址");// 播放地址,可以是第三方直播地址,或阿里云直播服务中的拉流地址。
            aliPlayer.setDataSource(urlSource);

    直播DRM加密播放

    直播DRM加密播放请参见如何播放加密视频

  3. 设置多清晰度。

    说明
    • 支持阿里云视频直播的播放地址或经直播转码后(现支持通用转码和自定义转码)的转码流地址,直播转码详情请参见转码管理;地址获取方式请参见生成推流地址和播放地址

    • 支持ARTC协议和FLV协议的直播流的不同清晰度切换。

    • 推流的gop size需要设置为1s2s,过大会导致切流跳变。

    • 播放域名需开启选项:FLV播放时输出RTMP时间戳、上游断流后输出RTMP时间戳;转码配置需开启选项:时间戳随源、关键帧随源,否则会导致切流卡顿或失败。如需开启请提交工单申请。

    • 切换到不符合上述要求的流地址时,会切换失败。

    切换清晰度

    通过switchStream方法切换清晰度,传递对应新清晰度的URL即可。

    aliPlayer.switchStream(newUrl);

    清晰度切换通知

    清晰度切换成功与失败回调。

    aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() {
        @Override
        public void onSwitchedSuccess(String url) {
            Log.i("SwitchStream", "switch success, url = " + url);
        }
    
        @Override
        public void onSwitchedFail(String url, ErrorInfo errorInfo) {
            Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg());
        }
    });