首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android中获取音乐文件(MP3)的采样率和频率?

如何在android中获取音乐文件(MP3)的采样率和频率?
EN

Stack Overflow用户
提问于 2011-02-28 17:22:24
回答 3查看 23.2K关注 0票数 12

我正在开发安卓音频播放器。因此,我想添加播放歌曲的详细信息,即艺术家姓名、持续时间、比特率和采样频率。我可以通过使用MediaStore.Audio.Media library来获取一个音乐文件的Artist Name和duration。但是我无法得到同一文件的比特率和采样频率。那么我怎样才能得到同样的结果呢?

据我所知,这可以通过使用本机库来完成。但不知道该怎么做?有人能帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-04 12:15:37

你可以通过将文件大小除以音频的长度(以秒为单位)来近似它,例如,来自我的库中的随机AAC编码的M4A:

代码语言:javascript
运行
复制
File Size: 10.3MB (87013064 bits)
Length: 5:16 (316 Seconds)
Which gives: 87013064 bits / 316 seconds = 273426.147 bits/sec or ~273kbps
Actual Bitrate: 259kbps

由于大多数音频文件都有一组已知的有效比特率级别,因此您可以使用它将比特率步进到适当的级别以便显示。

票数 17
EN

Stack Overflow用户

发布于 2015-12-23 19:48:13

我知道问题已经解决了,但我有更好的方法来得到准确的答案

代码语言:javascript
运行
复制
MediaExtractor mex = new MediaExtractor();
try {
    mex.setDataSource(path);// the adresss location of the sound on sdcard.
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

MediaFormat mf = mex.getTrackFormat(0);

int bitRate = mf.getInteger(MediaFormat.KEY_BIT_RATE);
int sampleRate = mf.getInteger(MediaFormat.KEY_SAMPLE_RATE);
票数 13
EN

Stack Overflow用户

发布于 2011-03-04 12:13:00

MediaMetadataRetriever提供了METADATA_KEY_DURATION,你可以除以比特率的文件大小。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5140085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档