Age*_*t P 8 android illegalstateexception
我尝试为"audio/3gpp"创建编码器,我的应用程序崩溃...
我用这个代码
String mMime = "audio/3gpp";
MediaCodec mMediaCodec = MediaCodec.createEncoderByType(mMime);
MediaFormat mMediaFormat = MediaFormat.createAudioFormat(mMime, RECORDER_SAMPLERATE, 1);
mMediaCodec.configure(mMediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
mMediaCodec.start();
Run Code Online (Sandbox Code Playgroud)
位于com.agent.mobile.TestAppActivity.initMediaCodec(TestAppActivity.java:234)的android.media.MediaCodec.configure(MediaCodec.java:256) 中的异常
java.lang.IllegalStateException
android.media.MediaCodec.native_configure(Native Method )
必须在格式中设置一些必需的值.如果您查看MediaFormat的文档,它会说"所有未标记为可选的键都是必需的".如果未能设置强制密钥,MediaCodec则会抛出错误,因为它已处于非法状态.
加:
mMediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, <bit rate>);
mMediaFormat.setInteger(MediaFormat.KEY_SAMPLE_RATE, <sample rate>);
mMediaFormat.setInteger(MediaFormat.KEY_CHANNEL_COUNT, 1);
Run Code Online (Sandbox Code Playgroud)
KEY_MIME应该是为你设定的createEncoderByType().
| 归档时间: |
|
| 查看次数: |
8884 次 |
| 最近记录: |