鸿蒙开发中,如何获取一段本地音频文件的时长?
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。
在鸿蒙开发中,要获取一段本地音频文件的时长,可以使用 `MediaMetadataRetriever` 类。具体步骤如下:
1. 创建一个 `MediaMetadataRetriever` 实例。
2. 使用 `setDataSource` 方法设置音频文件的本地路径。
3. 调用 `extractMetadata` 方法并传入 `MediaMetadataRetriever.METADATA_KEY_DURATION` 作为参数,该方法将返回音频文件的时长(以微秒为单位)。
4. 将时长从微秒转换为秒或其他所需的时间单位。
示例代码:
import ohos.media.MediaMetadataRetriever;
public class AudioDurationUtil {
public static long getAudioDuration(String filePath) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(filePath);
String durationStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
return Long.parseLong(durationStr); // 微秒
} catch (Exception e) {
e.printStackTrace();
return -1; // 失败时返回-1或其他错误码
} finally {
retriever.release();
}
}
// 将微秒转换为秒
public static double convertMicrosecondsToSeconds(long microseconds) {
return microseconds / 1_000_000.0;
}
}
使用上述方法,你可以获取本地音频文件的时长并将其转换为秒。
1 回答869 阅读✓ 已解决
1 回答1.2k 阅读
1 回答1k 阅读
1 回答955 阅读
1 回答921 阅读
1 回答826 阅读
1 回答776 阅读
你可参考文档@ohos.multimedia.media (媒体服务)
https://gitee.com/openharmony/docs/blob/master/zh-cn/applicat...
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。