阿里雲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();