setVideoSource method
设置视频源
sourceType 视频源类型
source 视频源
如果sourceType为VideoSourceType.VIDEO_FILE_SOURCE
source应该为文件路径
如果sourceType为VideoSourceType.VIDEO_LIVE_SOURCE
source应该为设备指针
如果sourceType为VideoSourceType.VIDEO_CARD_SOURCE
source应该为设备指针
如果sourceType为VideoSourceType.VIDEO_NETWORK_SOURCE
source应该为下载地址
Implementation
Future<bool> setVideoSource(VideoSource source) async {
if (isCreated == false) return false;
print("textureId:$textureId source:$source start");
if (source is FileVideoSource) {
if (source.filePath == null ||
File(source.filePath).existsSync() == false) {
print("textureId:$textureId error");
return false;
}
}
if (source is NetworkVideoSource) {
if (source.urls == null || source.urls.isEmpty) {
print("textureId:$textureId error");
return false;
}
}
if (source is LiveVideoSource) {
if (source.clientPtr == null || source.clientPtr == 0) {
print("textureId:$textureId error");
return false;
}
}
if (source is CardVideoSource) {
if (source.clientPtr == null || source.clientPtr == 0) {
print("textureId:$textureId error");
return false;
}
if (source.size == null || source.size < 0) {
print("textureId:$textureId error");
return false;
}
}
if (source is TimeLineSource) {
if (source.clientPtr == null || source.clientPtr == 0) {
print("textureId:$textureId error");
return false;
}
}
print("textureId:$textureId source:$source start2222");
var result = await app_player_channel.invokeMethod("app_player_source",
[this.textureId, source.sourceType.index, source.getSource()]);
print("textureId:$textureId source:$source start3333");
if (result == true) {
this.sourceType = source.sourceType;
this.source = source;
}
print("textureId:$textureId result:$result end");
return result;
}