HarmonyOS 怎么通过路径获取到视频信息

有业务场景需要拿到视频文件的时长,并上报给服务端。

HarmonyOS
2024-12-25 16:34:10
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avmetadataextractor-V5

测试文件放入了rawfile下面,使用getRawFd读取,如果是沙箱路径参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avmetadataextractor-V5的testFetchMetadataFromDataSrc方法,获取datasrc。

import media from '@ohos.multimedia.media'

const TAG = 'MetadataDemo'

@Entry
@Component
struct PageMediaMeta {
  build() {
    Column() {
      Button("获取音频时长").onClick(async () => {
        // 创建AVMetadataExtractor对象
        let avMetadataExtractor: media.AVMetadataExtractor = await media.createAVMetadataExtractor()
        // 设置fdSrc
        avMetadataExtractor.fdSrc = await getContext(this).resourceManager.getRawFd('喜欢你.mp3');
        // 获取元信息(callback模式)
        avMetadataExtractor.fetchMetadata((error, metadata) => {
          if (error) {
            console.error(TAG, `fetchMetadata callback failed, err = ${JSON.stringify(error)}`)
            return
          }
          console.info(TAG, `fetchMetadata callback success, duration: ${metadata.duration}`)
        })
      })

      Button("获取视频时长").onClick(async () => {
        // 创建AVMetadataExtractor对象
        let avMetadataExtractor: media.AVMetadataExtractor = await media.createAVMetadataExtractor()
        // 设置fdSrc
        avMetadataExtractor.fdSrc = await getContext(this).resourceManager.getRawFd('videoTest.mp4');
        // 获取元信息(callback模式)
        avMetadataExtractor.fetchMetadata((error, metadata) => {
          if (error) {
            console.error(TAG, `fetchMetadata callback failed, err = ${JSON.stringify(error)}`)
            return
          }
          console.info(TAG, `fetchMetadata callback success, duration: ${metadata.duration}`)
        })
      })
    }
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
2024-12-25 19:19:43
相关问题
如何通过路由的方式打开半屏
480浏览 • 1回复 待解决
场景化控件中无法获取到定位信息
1994浏览 • 1回复 待解决
通过API获取系统信息属性
501浏览 • 1回复 待解决
HarmonyOS怎么获取系统相册的路径
583浏览 • 1回复 待解决
通过API异步获取系统信息属性
553浏览 • 1回复 待解决
HarmonyOS 获取版本信息怎么使用呢
204浏览 • 1回复 待解决
HarmonyOS 怎么获取视频的播放时长?
550浏览 • 1回复 待解决