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

标签 android media-player android-ndk native-code bitrate

我正在用 android 开发音频播放器。所以我想添加播放歌曲的详细信息,即艺术家姓名、持续时间、比特率和采样频率。 我可以使用 MediaStore.Audio.Media library 获取艺术家姓名和音乐文件的持续时间。但我无法获得同一文件的比特率和采样频率。那么我怎样才能得到相同的呢?

据我所知,这可以通过使用 native 库来完成。但是不知道怎么办?那么有人可以帮我解决这个问题吗?

最佳答案

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

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

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

关于android - 如何在android中获取音乐文件(MP3)的采样率和频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5140085/

相关文章:

android - 使用循环设置按钮 onclicklistener

android - 我怎么能从我的服务器在我的应用程序中播放音频?

java - 为什么播放mp3会强制崩溃?

android - 流媒体源上的 MediaMetadataRetriever

android - 编译包含OpenCV header 的JNI库

android - Acer Iconia A200 上的 VideoView getCurrentPosition() 异常

Android textview中心字母

android - XML Drawable 未扩展到 View 大小,或 View 未正确继承其父级高度,在 Android API < 11 上

用于读取图像而不是获取帧的java代码

NDK android studio 中的 java.lang.UnsatisfiedLinkError