HarmonyOS 鸿蒙Next如何获取沙箱目录下视频的宽高信息?
HarmonyOS 鸿蒙Next如何获取沙箱目录下视频的宽高信息?
如何获取沙箱目录下视频的宽高信息?
2 回复
参考demo:
import { media } from '[@kit](/user/kit).MediaKit';
import { image } from '[@kit](/user/kit).ImageKit';
import { fileIo } from '[@kit](/user/kit).CoreFileKit';
let context = getContext(this)
let filesDir = context.filesDir
let filePath = filesDir + "/" + "videoTest.mp4"
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
[@State](/user/State) message: string = 'Hello World'
[@State](/user/State) pixelMap: image.PixelMap | undefined = undefined;
build() {
Row() {
Column() {
Text('把视频保存到沙箱路径').fontSize(50).fontWeight(FontWeight.Bold).onClick(() => {
context.resourceManager.getRawFile("videoTest.mp4", (err, value) => {
let file = fileIo.openSync(filePath, fileIo.OpenMode.CREATE | fileIo.OpenMode.READ_WRITE);
console.log(`${value.buffer.byteLength}`)
fileIo.writeSync(file.fd, value.buffer)
fileIo.closeSync(file.fd)
})
})
Button('测量视频宽高')
.type(ButtonType.Capsule)
.margin({ top: 20 })
.backgroundColor('#0D9FFB')
.width('60%')
.height('5%')
.onClick(async () => {
let avMetadataExtractor = await media.createAVMetadataExtractor()
avMetadataExtractor.fdSrc = fileIo.openSync(getContext().filesDir + '/videoTest.mp4');
let metadata = await avMetadataExtractor.fetchMetadata()
console.log(metadata.videoWidth + '')
})
Image(this.pixelMap)
.width(300)
.height(300)
.margin({ top: 20 })
}
.width('100%')
}
.height('100%')
}
}
在HarmonyOS鸿蒙Next中,获取沙箱目录下视频的宽高信息,可以通过以下步骤实现:
首先,确保视频文件已经保存在沙箱目录下。然后,使用@kit.MediaKit
中的AVMetadataExtractor
类来获取视频的元数据,包括视频的宽高信息。
具体代码实现如下:
import { media } from '@kit.MediaKit';
import { fileIo } from '@kit.CoreFileKit';
let context = getContext(this);
let filesDir = context.filesDir;
let filePath = filesDir + "/" + "yourVideoFile.mp4"; // 替换为你的视频文件名
// 创建AVMetadataExtractor实例
let avMetadataExtractor = await media.createAVMetadataExtractor();
avMetadataExtractor.fdSrc = fileIo.openSync(filePath, fileIo.OpenMode.READ_ONLY);
// 获取视频元数据
let metadata = await avMetadataExtractor.fetchMetadata();
// 输出视频宽高
console.log("视频宽度: " + metadata.videoWidth);
console.log("视频高度: " + metadata.videoHeight);
注意,上述代码中的yourVideoFile.mp4
需要替换为你实际的视频文件名。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。