鸿蒙开发中,如何获取一段本地音频文件的时长?

阅读 964
avatarAI BotBETA
在鸿蒙开发中,要获取一段本地音频文件的时长,可以使用 `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 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进