小编a.t*_*pov的帖子

android.media.MediaCodec 在 queueInputBuffer() 上抛出异常

我需要将音频文件从 PCM 转换为 AMR,我尝试使用 Android API 16+ 的 MediaCodec 进行转换。我在调用它的 queueInputBuffer 时遇到了 IllegalStateException:

07-16 19:40:55.519: E/AndroidRuntime(19227): FATAL EXCEPTION: main
07-16 19:40:55.519: E/AndroidRuntime(19227): java.lang.IllegalStateException
07-16 19:40:55.519: E/AndroidRuntime(19227):    at android.media.MediaCodec.queueInputBuffer(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    private static MediaCodec mediaCodec;

    private static void initMediaCodec() {
        mediaCodec = MediaCodec.createEncoderByType("audio/3gpp");
        MediaFormat mediaFormat = MediaFormat.createAudioFormat("audio/3gpp", 8000, 1);
        mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 12800);
        mediaFormat.setInteger(MediaFormat.KEY_SAMPLE_RATE, 8000);
        mediaFormat.setInteger(MediaFormat.KEY_CHANNEL_COUNT, 1);
        mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
        mediaCodec.start();
    }

<...>
        initMediaCodec();       
        ByteBuffer[] inputBuffers = mediaCodec.getInputBuffers();
        ByteBuffer[] outputBuffers = mediaCodec.getOutputBuffers();
        int inputBufferIndex = mediaCodec.dequeueInputBuffer(-1);
        if (inputBufferIndex >= 0) {
            ByteBuffer …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception android-mediacodec

5
推荐指数
0
解决办法
1204
查看次数

如何知道Android ICS中是否禁用了应用程序

在Android ICS中,我们可以禁用内置应用程序.是否可以知道代码中是否禁用或启用了特定应用程序?

android

2
推荐指数
2
解决办法
2400
查看次数