Android Невозможно создать экземпляр кодека «video/avc»Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Невозможно создать экземпляр кодека «video/avc»

Сообщение Anonymous »

Это мой первый пост, так что будьте терпеливы.

Я пытаюсь воспроизвести необработанное видео h264 на объекте Surface в приложении для Android. Я использую Android 5.0.1 на HTC. Прочитав документацию по Android, я обнаружил, что мне нужно использовать объект MediaCodec для декодирования необработанных байтов, а затем передать их на поверхность. Я пролил массу других вопросов и документов, но не нашел ответа на свою, казалось бы, очень простую проблему. Вот фрагмент моего кода:

Код: Выделить всё

        @Override
public void surfaceCreated(SurfaceHolder surfHolder) {
try {
String codecType = "video/avc";
MediaFormat mf = MediaFormat.createVideoFormat(codecType, 45 ,45);
mc = MediaCodec.createByCodecName(codecType);
mc.configure(mf, surfHolder.getSurface(), null, 0);
mc.setCallback(vcb);
mc.start();
}
catch (Exception e) {
e.printStackTrace();
}
}
Однако я застреваю, когда он пытается создать кодек по имени, и получаю следующую ошибку:

Код: Выделить всё

08-26 18:09:02.054    9132-9132/com.james.firstclient I/InputMethodManager﹕ [startInputInner] EditorInfo { packageName=com.james.firstclient, inputType=0x20001, imeOptions=0x48000005, privateImeOptions=null }, windowGainingFocus=android.view.ViewRootImpl$W@37cf53de, mServedView=android.widget.EditText{2a8889bf VFED..CL .F....I.  48,177-1032,290 #7f080001 app:id/hostText}, mServedInputConnectionWrapper=android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper@3ed5088c
08-26 18:09:03.964    9132-9292/com.james.firstclient D/libc﹕ [NET] android_getaddrinfofornet+,hn 12(0x3139322e313638),sn(),hints(known),family 0,flags 4
08-26 18:09:03.964    9132-9292/com.james.firstclient D/libc﹕ [NET] android_getaddrinfofornet-, SUCCESS
08-26 18:09:04.094    9132-9298/com.james.firstclient W/ACodec﹕ Allocating component 'video/avc' failed, try next one.
08-26 18:09:04.094    9132-9298/com.james.firstclient E/ACodec﹕ Unable to instantiate codec 'video/avc'.
08-26 18:09:04.094    9132-9298/com.james.firstclient E/ACodec﹕ signalError(omxError 0x80001003, internalError -2147483648)
08-26 18:09:04.094    9132-9298/com.james.firstclient E/MediaCodec﹕ Codec reported err 0xfffffffe, actionCode 0, while in state 1
08-26 18:09:04.094    9132-9132/com.james.firstclient W/MediaCodec-JNI﹕ try to release MediaCodec from JMediaCodec::~JMediaCodec()...
08-26 18:09:04.094    9132-9132/com.james.firstclient W/MediaCodec-JNI﹕ done releasing MediaCodec from JMediaCodec::~JMediaCodec().
08-26 18:09:04.094    9132-9132/com.james.firstclient W/System.err﹕ java.lang.IllegalArgumentException: Failed to initialize video/avc, error 0xfffffffe
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.media.MediaCodec.native_setup(Native Method)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.media.MediaCodec.(MediaCodec.java:486)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.media.MediaCodec.createByCodecName(MediaCodec.java:470)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at com.james.firstclient.WatchVideoActivity.surfaceCreated(WatchVideoActivity.java:63)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.SurfaceView.updateWindow(SurfaceView.java:579)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:176)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2050)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1106)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6018)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.Choreographer$CallbackRecord.run(Choreographer.java:792)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.Choreographer.doCallbacks(Choreographer.java:596)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.Choreographer.doFrame(Choreographer.java:557)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:778)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.os.Handler.handleCallback(Handler.java:739)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:95)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.os.Looper.loop(Looper.java:155)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5696)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at java.lang.reflect.Method.invoke(Native Method)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:372)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
08-26 18:09:04.114    9132-9132/com.james.firstclient W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Существует масса информации о том, что делать после создания экземпляра объекта MediaCodec, но практически ничего (из того, что я могу найти) о том, что происходит в этом сценарии. Это вселяет во меня надежду, что это просто глупая ошибка. Есть у кого-нибудь идеи?

Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/322 ... -video-avc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»