获取音频文件Android的持续时间

问题描述 投票:2回答:2

我有一个包含多个音频文件的ListView。对于每一个我必须得到持续时间,以便在列表中显示它。

这是我尝试过的:

MediaPlayer getDuration() - > 13件物品大约需要1秒钟

MediaStoreCursor - > 13件物品大约需要2秒

这对于展示ListView.来说太过分了

所以我想到了这个:

在录制音频文件时创建具有文件名和持续时间的数据库

- >这会导致数据不一致,因为文件可能已被删除

有没有其他方法来实现这一目标?

提前致谢

android audio media duration
2个回答
1
投票

我使用MediaMetaDataRetriever来收集音频或视频文件的元数据,包括视频预览帧,查看https://developer.android.com/reference/android/media/MediaMetadataRetriever以查看可以从媒体文件中检索哪种类型的元数据。你应该可以使用

extractMetaData(MediaMetadataRetriever.METADATA_KEY_DURATION)

获取音频/视频文件的持续时间。


0
投票

MediaMetadataRetriever可用于获取与媒体文件相关的元数据

MediaMetadataRetriever mediaMetadataRetriever= new MediaMetadataRetriever();
 mediaMetadataRetriever.setDataSource(filePath);

String duration = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM));

extractMetadata(int)方法可以在Android API级别10之上使用。

持续时间以毫秒为单位。

© www.soinside.com 2019 - 2024. All rights reserved.