setVideoSource method

Future<bool> setVideoSource(
  1. VideoSource source
)

设置视频源

sourceType 视频源类型 source 视频源 如果sourceTypeVideoSourceType.VIDEO_FILE_SOURCE source应该为文件路径

如果sourceTypeVideoSourceType.VIDEO_LIVE_SOURCE source应该为设备指针

如果sourceTypeVideoSourceType.VIDEO_CARD_SOURCE source应该为设备指针

如果sourceTypeVideoSourceType.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;
}