赞
踩
Android系统提供了三个类MediaExtractor,MediaFormat,MediaCodec来帮助用户实现音视频解码,接下来分别介绍一下各自的功能。
名称 值类型 描述
KEY_MIME 串 格式的类型。
KEY_MAX_INPUT_SIZE 整数 可选,输入数据缓冲区的最大大小
KEY_BIT_RATE 整数 仅编码器,所需比特率(以比特/秒为单位)
解码播放实现的步骤为:
实现代码如下所示
音频解码的代码如下
private class AudioThread extends Thread {
private int audioInputBufferSize;
private AudioTrack audioTrack;
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
@Override
public void run() {
MediaExtractor audioExtractor = new MediaExtractor();
MediaCodec audioCodec = null;
try {
audioExtractor.setDataSource(filePath);
} catch (IOException e) {
e.printStackTrace();
}
for (int i = 0; i < audioExtractor.getTrackCount(); i++) {
MediaFormat mediaFormat = audioExtractor.getTrackFormat(i);
String mime = mediaFormat.getString(MediaFormat.KEY_MIME);
if (mime.startsWith("audio/")) {
audioExtractor.selectTrack(i);
int audioChannels = mediaFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT);
int audioSampleRate = mediaFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE);
int minBufferSize = AudioTrack.getMinBufferSize(audioSampleRate,
(audioChannels == 1 ? AudioFormat.CHA
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。