【问题标题】:how to get bit rate , sampling rate and no. of channels of a audio file in android如何获得比特率,采样率和否。 android中音频文件的通道数
【发布时间】:2013-02-07 10:37:58
【问题描述】:

以下查询需要您的帮助:

查询: 有什么方法可以获取音频文件的以下信息。 音频文件的采样率、通道、比特率。

对于提取比特率,可以使用“MediaMetadataRetriever”API (METADATA_KEY_BITRATE)。

请建议是否可以使用任何 android API 来完成。

在API下面找到了这个,但它的用途实际上是不同的。 http://developer.android.com/reference/android/medi/AudioTrack.html

我想以编程方式使用 Android API 提取这些内容: 输入音频文件的采样率、量化、通道。

请帮忙。

提前致谢。

【问题讨论】:

标签: java android audio media-player android-mediaplayer


【解决方案1】:

在播放过程中使用MediaPlayer.getTrackInfo()(在METADATE_UPDATE事件到达onInfo回调之后)通过调用getFormat获取MediaFormat对象用于音频流轨道。然后从MediaFormat你可以得到:

BIT_RATE

CHANNEL_COUNT

SAMPLE_RATE

【讨论】:

    【解决方案2】:

    这可以使用MeiaExtractor 来完成,如下所示:

    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);
        int channelCount = mf.getInteger(MediaFormat.KEY_CHANNEL_COUNT);
    

    【讨论】:

    • 这一行 mex.setDataSource(path);收到类似““无法打开 libwvm.so:dlopen 失败:找不到库“libwvm.so””的错误
    • 尝试在物理设备上进行测试,您遇到的问题似乎在模拟器中很常见
    猜你喜欢
    • 2011-07-05
    • 2012-06-18
    • 2012-07-20
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2013-02-24
    相关资源
    最近更新 更多