118 lines
3.8 KiB
Dart
118 lines
3.8 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:flutter_aliplayer/flutter_aliplayer_factory.dart';
|
||
|
||
import 'flutter_aliplayer.dart';
|
||
export 'flutter_aliplayer.dart';
|
||
|
||
class FlutterAliListPlayer extends FlutterAliplayer {
|
||
String playerId = 'listPlayerDefault';
|
||
|
||
FlutterAliListPlayer.init(String id) : super.init(id);
|
||
|
||
@override
|
||
|
||
/// 创建短视频列表播放
|
||
Future<void> create() async {
|
||
var invokeMethod = FlutterAliPlayerFactory.methodChannel.invokeMethod(
|
||
'createAliPlayer', wrapWithPlayerId(arg: PlayerType.PlayerType_List));
|
||
sendCustomEvent("source=flutter");
|
||
return invokeMethod;
|
||
}
|
||
|
||
/// 设置预加载的个数
|
||
/// 当前位置的前preloadCount和后preloadCount,默认preloadCount = 2
|
||
Future<void> setPreloadCount(int count) async {
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("setPreloadCount", wrapWithPlayerId(arg: count));
|
||
}
|
||
|
||
/// 添加vid资源到播放列表中
|
||
Future<void> addVidSource({@required vid, @required uid}) async {
|
||
Map<String, dynamic> info = {'vid': vid, 'uid': uid};
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("addVidSource", wrapWithPlayerId(arg: info));
|
||
}
|
||
|
||
/// 添加url资源到播放列表中
|
||
Future<void> addUrlSource({@required url, @required uid}) async {
|
||
Map<String, dynamic> info = {'url': url, 'uid': uid};
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("addUrlSource", wrapWithPlayerId(arg: info));
|
||
}
|
||
|
||
/// 从播放列表中删除指定资源
|
||
Future<void> removeSource(String uid) async {
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("removeSource", wrapWithPlayerId(arg: uid));
|
||
}
|
||
|
||
/// 获取当前播放资源的uid
|
||
Future<dynamic> getCurrentUid() {
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("getCurrentUid", wrapWithPlayerId());
|
||
}
|
||
|
||
/// 清除播放列表
|
||
Future<void> clear() async {
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("clear", wrapWithPlayerId());
|
||
}
|
||
|
||
/// 设置最大的预缓存的内存大小,默认100M,最小20M
|
||
Future<void> setMaxPreloadMemorySizeMB(int size) {
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("setMaxPreloadMemorySizeMB", wrapWithPlayerId(arg: size));
|
||
}
|
||
|
||
/// 当前位置移动到下一个进行准备播放
|
||
/// 没有入参是url播放方式;有入参是sts播放方式,需要更新sts信息
|
||
Future<void> moveToNext(
|
||
{String? accId, String? accKey, String? token, String? region}) async {
|
||
Map<String, dynamic> info = {
|
||
'accId': accId,
|
||
'accKey': accKey,
|
||
'token': token,
|
||
'region': region
|
||
};
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("moveToNext", wrapWithPlayerId(arg: info));
|
||
}
|
||
|
||
/// 当前位置移动到上一个进行准备播放
|
||
/// 没有入参是url播放方式;有入参是sts播放方式,需要更新sts信息
|
||
Future<void> moveToPre({
|
||
String? accId,
|
||
String? accKey,
|
||
String? token,
|
||
String? region,
|
||
}) async {
|
||
Map<String, dynamic> info = {
|
||
'accId': accId,
|
||
'accKey': accKey,
|
||
'token': token,
|
||
'region': region
|
||
};
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("moveToPre", wrapWithPlayerId(arg: info));
|
||
}
|
||
|
||
///移动到指定位置开始准备播放,url播放方式只需要填写uid;sts播放方式,需要更新sts信息
|
||
///uid 指定资源的uid,代表在列表中的唯一标识
|
||
Future<void> moveTo(
|
||
{@required String? uid,
|
||
String? accId,
|
||
String? accKey,
|
||
String? token,
|
||
String? region}) async {
|
||
Map<String, dynamic> info = {
|
||
'uid': uid,
|
||
'accId': accId,
|
||
'accKey': accKey,
|
||
'token': token,
|
||
'region': region
|
||
};
|
||
return FlutterAliPlayerFactory.methodChannel
|
||
.invokeMethod("moveTo", wrapWithPlayerId(arg: info));
|
||
}
|
||
}
|