android - 获取原始文件夹中歌曲的歌曲时长并将其转换为String数组?

标签 android audio duration

是否可以获取原始文件夹中声音的持续时间,并将其转换为字符串数组?
像这样:

sound1持续时间:00:10sec

sound2时长:02:31sec

..

sound1235时长:00:31sec

并将其转换为

String[] soundDuration = { "00:10","02:31"...."00:31"};

最佳答案

我相信这是您要寻找的:

    Uri mediaPath = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_song);
    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource(this, mediaPath);

然后,访问/保存信息
    String song_duration =mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);

请注意,但是这会返回持续时间(以毫秒为单位),因此我相信您可以执行以下操作:
    Integer.parseInt(song_duration);
    song_duration = song_duration / 1000;
    String song_dur_str = "song_duration/60" +":" +"song_duration%60" + "sec"

关于android - 获取原始文件夹中歌曲的歌曲时长并将其转换为String数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29038231/

相关文章:

android - 比较两个 apk 文件以检查两者之间的差异(大小差异为 1 kb)

android - 异常更新游戏到cocos2d-x v2.0

rtmp - 流式处理 HLS 时,videojs 的 currentTime 不正确

c++ - 临时元素的保存期限有什么要求?

php - 使用 FFMPEG 或可能的 HTML5 获取视频信息

java - 日期选择器不适用于 API 26

java - 动态加载/重新加载 Java 类时防止重复调用 System.loadLibrary

c++ - 如何开始用 C++ 编写音乐可视化工具?

javascript - 无法使用 play() 函数在 React Typescript 中播放音频 |错误 : Property 'play' does not exist

c++ - 如何在 Windows 10 上以编程方式定义音频输出?