useDocument method

dynamic useDocument(
  1. DocumentInfo doc
)

Implementation

useDocument(DocumentInfo doc) async {
  final classInfo = await TCICController.instance.getClassInfo();

  final videoExtRegExp = RegExp(
    r'^(mp4|3gp|mpg|mpeg|3g2|avi|flv|wmv|h264|m4v|mj2|mov|ogg|ogv|rm|qt|vob|webm|f4v|rmvb)$',
    caseSensitive: false, // 忽略大小写
  );

  final audioExtRegExp = RegExp(
    r'^(mp3|wav|wma|aac|flac|m4a|oga|opus|MP3|WAV|WMA|AAC|FLAC|M4A|OGA|OPUS)$',
    caseSensitive: false, // 忽略大小写
  );

  // 图片文件扩展名正则表达式(区分大小写,末尾匹配)
  final imageExtRegExp = RegExp(
    r'^(bmp|jpg|jpeg|png|gif|webp|svg)$',
    caseSensitive: false, // 忽略大小写
  );

  final docType = doc.docType;
  if (imageExtRegExp.hasMatch(docType)) {
    TCICWhiteBoardController.addImagesFile(
      urls: [doc.docUrl],
      title: doc.docName,
      needSwitch: true,
    );
  } else if (videoExtRegExp.hasMatch(docType)) {
    TCICWhiteBoardController.addVideoFile(
      url: doc.docUrl,
      title: doc.docName,
      needSwitch: true,
    );
  } else if (audioExtRegExp.hasMatch(docType)) {
    await TCICWhiteBoardController.addElement(
      5,
      Uri.decodeFull(doc.transcodeResult),
      {"title": doc.docName},
    );
  } else if (doc.transcodeType == 1) {
    TCICWhiteBoardController.addTranscodeFile(
      title: doc.docName,
      url: doc.transcodeResult,
      pages: doc.pages,
      resolution: '${doc.width}x${doc.height}',
    );
  }

  await _repostory.bindDocumentToClass(
    BindDocumentParams(classId: classInfo!.classId, docId: doc.docId),
  );
}