HarmonyOS AVMetadataExtractor解码拍照视频,拿不到meta信息?

代码:

export async function fetchMetaLocalVideo(videoLocalPath: string): Promise<media.AVMetadata|undefined> {
  if (canIUse('SystemCapability.Multimedia.Media.AVMetadataExtractor')) {
    let avMetadataExtractor = await media.createAVMetadataExtractor()
    console.info('fetchFirstFrameVideo', 'videoUrl: ' + videoLocalPath)
    let fd: number = fs.openSync(videoLocalPath, 0o0).fd;
    let fileSize: number = fs.statSync(videoLocalPath).size;
    let dataSrc: media.AVDataSrcDescriptor = {
      fileSize: fileSize,
      callback: (buffer, len, pos) => {
        if (buffer == undefined || len == undefined || pos == undefined) {
          console.error('fetchFirstFrameVideo', `dataSrc callback param invalid`)
          return -1
        }
        class Option {
          offset: number | undefined = 0;
          length: number | undefined = len;
          position: number | undefined = pos;
        }

        let options = new Option();
        let num = fs.readSync(fd, buffer, options)
        console.info('fetchFirstFrameVideo', 'readAt end, num: ' + num)
        if (num > 0 && fileSize >= pos) {
          return num;
        }
        return -1;
      }
    }
    avMetadataExtractor.dataSrc = dataSrc;
    let metadata = await avMetadataExtractor.fetchMetadata()
    console.info(`fetchFirstFrameVideo metadata: ${JSON.stringify(metadata)}`)
    avMetadataExtractor.release()
    return metadata
  } else{
    return undefined
  }
}
阅读 474