0

Я пытаюсь получить продолжительность воспроизведения видео, так как я создаю свой пользовательский медиа-контроллер. Когда я использую по умолчанию mediacontroller, кажется, нет проблем, поскольку он показывает все подробности. Я хочу создайте свой собственный mediacontroller только для добавления графики в мое приложение. Я не мог получить полную продолжительность своего онлайн-видео, используя любой из следующих кодов. Некоторые эксперты, пожалуйста, помогите.андроид видео показать полную продолжительность без использования медиа-контроллера

mVideoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 

      long duration1 = mp.getDuration(); 

      Log.d("DURATION of media player", duration1+""); 

      Log.d("Videoview duration", mVideoView.getDuration()+""); 

      int msec = MediaPlayer.create(getApplicationContext(),video).getDuration(); 

      Log.d("Duration of msec", msec+""); 

      try{ 
       //this block not working ... why??? 
       MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
//video = uri.parse(String myurl) 
       retriever.setDataSource(getApplicationContext(),video); 

       String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); 
       long timeInmillisec = Long.parseLong(time); 

       long duration = timeInmillisec/1000; 
       long hours = duration/3600; 
       long minutes = (duration - hours * 3600)/60; 
       long seconds = duration - (hours * 3600 + minutes * 60); 
       finalTime = timeInmillisec; 
       Log.d("HH:MM:SS", hours+":"+minutes+":"+seconds+""); 

      }catch(IllegalArgumentException e){ 
       Log.d(TAG, "media meta retriever error"); 
       e.printStackTrace(); 
       Log.d(TAG, e.getMessage()+""); 

      } 

моя последняя попытка всегда возвращает исключение нелегальный аргумент, хотя URL воспроизводится правильно, даже с помощью VLC Media Player Я пробовал разные способы, имеющиеся у него, например,

retriever.setDataSource (String path) 
retriever.setDataSource (Context context, Uri uri) 

ответ

0

Я, наконец, получил свое решение после custom-android-media-controller , поскольку мне нужно изменить весь пользовательский интерфейс, Не нужно получать полную продолжительность, которую мне нужно было показать в моем настраиваемом медиа-контроллере.

+0

Не могли бы вы указать мне пример проекта андроидной студии 2.2? Я также хочу создать пользовательский медиа-контроллер. Спасибо – user1788736

+0

проверьте ссылку, где вы найдете пример проекта https://github.com/brightec/ExampleMediaController –