【发布时间】:2017-04-22 05:38:51
【问题描述】:
我正在尝试在我的应用程序中解码 AAC 编码文件并初始化用于初始化我的 MediaCodec 对象的 MediaFormatobject,这是为 MediaFormat 对象设置变量的代码
MediaExtractor mediaExtractor = new MediaExtractor();
try {
mediaExtractor.setDataSource(audioFilePath);
} catch (IOException e) {
return false;
}
Log.d(TAG, "Number of tracks in the file are:" + mediaExtractor.getTrackCount());
MediaFormat mediaFormat = mediaExtractor.getTrackFormat(0);
Log.d(TAG, "mediaFormat:" + mediaFormat.toString());
mSampleRate = mediaFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE);
Log.d(TAG, "mSampleRate: " + mSampleRate);
mChannels = mediaFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT);
Log.d(TAG, "mChannels number of channels: " + mChannels);
// Reading the duration from the file and converting from micro seconds to milliseconds.
mDuration = (int) (mediaFormat.getLong(MediaFormat.KEY_DURATION) / 1000);
Log.d(TAG, "duration: " + mDuration);
// Getting the csd-0 info from the file ..
mCSDBuffer = mediaFormat.getByteBuffer("csd-0");
我面临的问题是声明 mCSDBuffer = mediaFormat.getByteBuffer("csd-0") 在某些设备上为同一文件获取了 null。该应用程序正在生产中,我在 android API 级别为 17、18 和 19 的armabi-v7a/armabiprocessors 设备上看到此错误,并且这些错误中的大多数都在三星设备上。这有什么方向吗?
【问题讨论】:
标签: android decoding android-mediacodec aac