2016-08-07 12 views
1

これは非常に一般的な問題だと思われますが、それでは検索できませんでした。Androidビデオの表示が黒くなる

私は単純なvideoviewを持っており、mp4ファイルからビデオを再生します。それは継続的にビデオを再生し、ビデオをループします。

問題は再生中に設定に行き、戻ってきたときにビデオが黒くなることです。

は、これは私のコードです:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_video); 
    video = (VideoView) findViewById(R.id.video); 
    // Load and start the movie 
    Uri video1 = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.videoplayback); 
    video.setVideoURI(video1); 
    video.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mp.setLooping(true); 
     } 
    }); 
    video.start(); 

私はこれで何も特別なことは、ユーザーのボタンをタップするバックまでビデオをループビデオ再生のちょうどフルスクリーンを望んでいません。

+0

設定はトップバーから電話機の設定を意味し、アプリケーション上で開いているすべてのもので発生し、閉じるとビデオビューは黒です。 – Yawar

+0

あなたはonPauseで現在の位置を設定し、新しい位置でonResumeで始める必要があります。 –

+0

同じ問題がありました。代わりにmediaPlayerを使用してください – Apurva

答えて

0

は、私は同じ問題を持っていたこの

private int videoViewStopPosition ; 

    @Override 
    protected void OnPause(){ 
    super.onPause(); 
    videoViewStopPosition = vidView.getCurrentPosition(); 
    vidView.pause(); 
    } 



    @Override 
    protected void OnResume() { 
    super.onResume(); 
    vidView.seekTo(videoViewStopPosition); 
    vidView.start(); 

    } 
0

にこの

private int stopPosition; 
    private VideoView splashVideoView; <-- my Video view 

を試してみてください。その主な理由は、親レイアウトとしてFrameLayoutを使用したことでした。私はVideoViewの親のレイアウトとしてRelativeLayoutに変更し、問題は解決します。

0

を試してみてくださいonCreate

//video player 

    if (savedInstanceState != null) { 
      stopPosition = savedInstanceState.getInt("position"); 
     } 



    @Override 
    protected void onResume() { 
     super.onResume(); 
     splashVideoView.seekTo(stopPosition); 
     splashVideoView.start(); 
    } 

// This gets called before onPause so pause video here. 
    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     stopPosition = splashVideoView.getCurrentPosition(); 
     splashVideoView.pause(); 
     outState.putInt("position", stopPosition); 
    } 
0

ビデオビューをonResume()に作成する必要があります。これを試してみてください:

関連する問題