HarmonyOS 鸿蒙Next如何通过路径获取到视频信息代码示例
HarmonyOS 鸿蒙Next如何通过路径获取到视频信息代码示例 如何通过路径获取到视频信息代码示例
2 回复
参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/avmetadataextractor-V5
测试文件放到rawfile下面,使用getRawFd读取。
如果是沙箱路径参考获取音视频元数据的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%')
}
}
更多关于HarmonyOS 鸿蒙Next如何通过路径获取到视频信息代码示例的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,通过路径获取视频信息通常需要使用鸿蒙提供的多媒体API。以下是一个简单的代码示例,展示了如何在HarmonyOS应用中使用路径获取视频信息。
首先,确保你的项目中已经包含了必要的权限,比如读取存储权限(READ_EXTERNAL_STORAGE)。
// 注意:此代码示例为伪代码,实际鸿蒙开发不使用Java,但为说明逻辑而写
import ohos.aafwk.ability.Ability;
import ohos.media.common.Uri;
import ohos.media.MetadataRetriever;
public class VideoInfoFetcher extends Ability {
public void fetchVideoInfo(String filePath) {
try {
Uri videoUri = Uri.parse("file://" + filePath);
MetadataRetriever retriever = new MetadataRetriever();
retriever.setDataSource(this, videoUri);
// 获取视频宽度
String width = retriever.extractMetadata(MetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
// 获取视频高度
String height = retriever.extractMetadata(MetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
// 获取视频时长(毫秒)
String duration = retriever.extractMetadata(MetadataRetriever.METADATA_KEY_DURATION);
// 这里可以添加更多代码来处理获取到的视频信息
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意:上述代码是基于假设的API调用方式,实际鸿蒙开发中,API调用和类名可能有所不同。你需要查阅鸿蒙系统的官方文档来获取正确的API和类名。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,