如何获得比特率,采样率和没有。 android中的音频文件的频道

时间:2013-02-07 10:37:58

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

我需要您对以下查询的帮助:

查询: 有没有办法获取音频文件的跟踪信息。 采样率,通道,音频文件的比特率。

用于提取比特率," MediaMetadataRetriever" API可用(METADATA_KEY_BITRATE)。

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

发现以下API,但它的使用实际上是不同的。 http://developer.android.com/reference/android/medi/AudioTrack.html

我想使用Android API程序提取这些: 采样率,量化,输入音频文件的通道。

请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在播放期间使用MediaPlayer.getTrackInfo()(在METADATE_UPDATE事件到达onInfo回调之后),通过调用getFormat获取音频流轨道来获取MediaFormat对象。然后从MediaFormat获得:

BIT_RATE

CHANNEL_COUNT

SAMPLE_RATE

答案 1 :(得分:1)

这可以使用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);