2016-03-03 3 views
1

Я занимаюсь разработкой приложения для Android, где я работал над образцом телевизионного приложения, представленным в шаблоне студии Android. Здесь все работает нормально, но на экране видеоплеера отображается сообщение «Невозможно воспроизвести это видео» в Android TV Emulator.Видео не воспроизводится в Android TV Emulator

Ref файл PlaybackOverlayActivity.java =>onFragmentPlayPause() (когда мы создаем новый телевизионный проект в студии андроида)

В демо, они использовали VideoView. Я также попытался с помощью поверхности вида вида/текстур для воспроизведения видео с помощью ссылки, но это дает различные ошибки как

1.MediaPlayer: ошибка (100, 0)

2.MediaPlayer: Если есть контроллер субтитров уже установлено

3.MediaPlayer: ошибка (1, -38)

Я уже пробовал разные решения от разных потоков ...

Пожалуйста, проверьте ниже код, его просто Ф.О. r тестирование воспроизведения видео. Я также обнаружил, что любой эмулятор, созданный с помощью AVD, не может воспроизводить видео с помощью любого из этих методов.

public class MainActivity extends Activity implements TextureView.SurfaceTextureListener, MediaPlayer.OnPreparedListener { 


     private MediaPlayer mMediaPlayer; 

     private TextureView mPreview; 

     private String path = "http://www.sample-videos.com/video/mp4/240/big_buck_bunny_240p_1mb.mp4"; 

     @Override 
     public void onCreate(Bundle icicle) { 

      super.onCreate(icicle); 

      setContentView(R.layout.activity_main); 

      mPreview = (TextureView) findViewById(R.id.surface); 
      mPreview.setSurfaceTextureListener(this); 
     } 

     public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { 
      Surface s = new Surface(surface); 

      try { 
       mMediaPlayer = new MediaPlayer(); 
       mMediaPlayer.setSurface(s); 
       mMediaPlayer.setDataSource(this, Uri.parse(path)); 
       mMediaPlayer.setOnPreparedListener(this); 
       mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
       mMediaPlayer.prepare(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { 

     } 

     @Override 
     public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { 
      return false; 
     } 

     @Override 
     public void onSurfaceTextureUpdated(SurfaceTexture surface) { 

     } 

     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 
     } 
    } 

android-tv-cant-play-video

сказать также, если есть любой другой способ проверить видео на Android TV Emulator. Благодарю.

+0

Он работает в обычном мобильном эмуляторе ?? – Madhur

+0

Я уже говорил, что «я также обнаружил, что любой эмулятор, созданный с AVD, не может воспроизводить видео». Но он играет в эмуляторе genymotion (телефон). – Harry

ответ

0

Я бы предположил, что вы посмотрите на Android TV Leanback sample, который более активно поддерживается, чем шаблоны для Android Studio. В примере Leanback он может показать вам, как использовать ExoPlayer для воспроизведения контента.

Кроме того, недавно были внесены изменения в эмулятор Android, который зафиксировал критическую проблему, когда доступ к сети не был доступен через эмулятор, что фактически не позволяет получать видео. Убедитесь, что вы обновили до последних эмуляторов API23_x86 и API23_arm, чтобы получить это исправление.