阿里云Flutter播放器SDK为移动端应用提供高效的音视频集成解决方案,支持移动端开发者快速实现直播、点播等核心视频场景。本文介绍阿里云Flutter播放器SDK的直播播放功能。
标准直播播放
集成SDK。
请参考Flutter播放器集成SDK进行集成。
实现直播播放。
快速开始。
请参考Flutter播放器快速开始实现基础播放功能。
设置直播播放源。
Flutter播放器SDK仅支持1种直播播放方式,为UrlSource播放。
直播视频UrlSource播放
使用UrlSource播放方式播放直播视频,需要将播放器的setUrl属性设置为直播拉流地址。播放地址可以是第三方直播地址或阿里云直播服务中的拉流地址。
阿里云直播拉流地址可以通过直播控制台的地址生成器生成。详情请参见阿里云直播地址生成器 。
void onViewPlayerCreated(viewId) async { // 将渲染的View设置给播放器 fAliplayer.setPlayerView(viewId); // 设置播放源 switch (_playMode) { // UrlSource播放方式 case ModeType.URL: this.fAliplayer.setUrl("填写资源的播放地址"); // 播放地址可以是第三方直播地址,或阿里云直播服务中的拉流地址。 break; default: } }
RTS直播播放
下述的版本号仅供参考,请以实际需要集成的版本号为准。
阿里云播放器SDK和超低延时直播SDK的版本必须配套使用,具体版本配套关系请参见Web SDK下载与发布记录。
阿里云播放器SDK的实际版本号请参见Android SDK发布历史、iOS SDK发布历史,超低延时直播SDK版本号请参见Web SDK下载与发布记录。
在Android或iOS端原生层集成
Android端集成:在build.gradle文件中添加依赖即可,示例如下。
dependencies{ def player_sdk_version = "7.2.0" def rts_sdk_version = "7.2.0" // 播放器与RTS的桥接层(AlivcArtc),版本号需要与播放器一致,需要和 Rts低延时直播组件 一起集成 implementation 'com.aliyun.sdk.android:AlivcArtc:$player_sdk_version' // Rts低延时直播组件 ,独立版本号 implementation 'com.aliyun.rts.android:RtsSDK:$rts_sdk_version' }
iOS端集成:在Podfile文件中添加依赖即可,示例如下。
# player_sdk_version为阿里云iOS播放器SDK的版本号,例如:7.2.0 player_sdk_version = '7.2.0' # rts_sdk_version为阿里云超低延时直播SDK的版本号,独立版本号 例如:7.2.0 rts_sdk_version = '7.2.0' target 'Runner' do flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) # 播放器与RTS的桥接层(AlivcArtc),版本号需要与播放器一致,需要和 Rts低延时直播组件 一起集成 pod 'AliPlayerSDK_iOS_ARTC', player_sdk_version # Rts低延时直播组件 pod 'RtsSDK', rts_sdk_version end
如需播放ARTC流,除了需要在集成时引入RTS相关依赖,Android端还需在创建播放器前调用FlutterAliPlayerFactory.loadRtsLibrary();
加载RtsSDK动态库,示例如下:
配置
pubspec.yaml
文件。name: your project description: xxxxx version: 1.0.0+1 # The following line prevents the package from being accidentally published to # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev environment: sdk: ">=2.15.0 <4.0.0" dependencies: flutter: sdk: flutter // add flutter_aliplayer flutter_aliplayer: "7.3.1" dev_dependencies: flutter_test: sdk: flutter # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter. flutter: # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true
加载RTS SDK。
说明使用Android播放器V7.3.1及以下版本时,需手动加载RTS SDK。
useAIOFramework=true
(默认false)时使用音视频终端SDK,否则使用播放器SDK和RTS SDK。建议使用最新版本SDK:
音视频终端SDK请参考Android端音视频终端SDK和iOS端音视频终端SDK。
播放器SDK请参考下载播放器SDK。
rts低延迟直播组件请参考Android端实现RTS拉流和iOS端实现RTS拉流。
dependencies { // 定义 SDK 内核 def useAIOFramework = false // 定义 SDK 版本 // 音视频终端SDK def aio_sdk_version = "7.1.0" // 播放器SDK def player_sdk_version = "7.2.0" // rts低延迟直播组件 def rts_sdk_version = "7.2.0" // 根据 useAIOFramework 的值选择相应的 SDK if (useAIOFramework) { // 音视频终端SDK(互动直播):直播推流(含超低延时直播、RTC连麦)+播放器 implementation "com.aliyun.aio:AliVCSDK_InteractiveLive:$aio_sdk_version" } else { // 阿里云播放器独立SDK implementation "com.aliyun.sdk.android:AliyunPlayer:$player_sdk_version-full" implementation "com.aliyun.sdk.android:AlivcArtc:$player_sdk_version" implementation "com.aliyun.rts.android:RtsSDK:$rts_sdk_version" } implementation 'com.google.code.gson:gson:2.10.1' }
手动加载RTS SDK。
FlutterAliPlayerFactory.loadRtsLibrary(true);
播放视频。
FlutterAliplayer player = FlutterAliPlayerFactory.createAliPlayer(); player.setUrl("artc://xxxx"); player.prepare(); player.play();