Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Debe tener controlador de subtítulos ya establecido error Mediaplayer Android

Cada vez que reproduzco un medio, muestra una advertencia en DDMS Should have subtitle controller already set

MI CÓDIGO:

 private void start() { mediaPlayer.start(); mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.stop(); mp.release(); } }); } 

DDMS LOG

Debe tener el controlador de subtítulos ya establecido

Info / advertencia (2, 0)

Cuando busqué en Google, ni siquiera un solo tema relacionado con él. ¿Cómo puedo deshacerme o deshabilitarlo?

  • Cómo obtener el marco de archivo de vídeo en android
  • MediaPlayer: Debe tener un controlador de subtítulos ya establecido: KitKat
  • Android SurfaceView causando parpadeo de la pantalla
  • El reajuste de MediaPlayer de Android congela la interfaz de usuario
  • Android MediaPlayer.reset () invoca onCompletion
  • Cómo administrar MediaPlayer.setVolume () + SeekBar para configurarlo + control de volumen del dispositivo
  • ¿Cómo proteger el contenido multimedia (vídeo, audio) en Android de ser guardado / redistribuido?
  • Método correcto para usar MediaPlayer en la aplicación Android
  • 2 Solutions collect form web for “Debe tener controlador de subtítulos ya establecido error Mediaplayer Android”

    Un desarrollador recientemente añadió soporte de subtítulos a VideoView .

    Cuando MediaPlayer comienza a reproducir una música (u otra fuente), comprueba si hay un SubtitleController y muestra este mensaje si no está configurado. No parece importarle si la fuente que usted quiere jugar es una música o un vídeo. No sé por qué lo hizo.

    Respuesta corta: No te preocupes por esta "Excepción".


    Editar:

    Todavía presente en Lollipop ,

    Si MediaPlayer sólo se utiliza para reproducir archivos de audio y realmente desea eliminar estos errores en el logcat, el código a continuación establecer un empty SubtitleController para el MediaPlayer .

    No debe utilizarse en el entorno de producción y puede tener algunos efectos secundarios.

     static MediaPlayer getMediaPlayer(Context context){ MediaPlayer mediaplayer = new MediaPlayer(); if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) { return mediaplayer; } try { Class<?> cMediaTimeProvider = Class.forName( "android.media.MediaTimeProvider" ); Class<?> cSubtitleController = Class.forName( "android.media.SubtitleController" ); Class<?> iSubtitleControllerAnchor = Class.forName( "android.media.SubtitleController$Anchor" ); Class<?> iSubtitleControllerListener = Class.forName( "android.media.SubtitleController$Listener" ); Constructor constructor = cSubtitleController.getConstructor(new Class[]{Context.class, cMediaTimeProvider, iSubtitleControllerListener}); Object subtitleInstance = constructor.newInstance(context, null, null); Field f = cSubtitleController.getDeclaredField("mHandler"); f.setAccessible(true); try { f.set(subtitleInstance, new Handler()); } catch (IllegalAccessException e) {return mediaplayer;} finally { f.setAccessible(false); } Method setsubtitleanchor = mediaplayer.getClass().getMethod("setSubtitleAnchor", cSubtitleController, iSubtitleControllerAnchor); setsubtitleanchor.invoke(mediaplayer, subtitleInstance, null); //Log.e("", "subtitle is setted :p"); } catch (Exception e) {} return mediaplayer; } 

    Este código intenta hacer lo siguiente desde la API oculta

     SubtitleController sc = new SubtitleController(context, null, null); sc.mHandler = new Handler(); mediaplayer.setSubtitleAnchor(sc, null) 

    Para eliminar el mensaje en logcat, agrego un subtítulo a la pista. En las ventanas, haga clic derecho en la pista -> Propiedad -> Detalles -> insertar un texto en el subtítulo. Hecho 🙂

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.