0

2 つの異なるコンテンツを持つ 2 つのタブがあります。

  • Tab1->ビデオストリーミング
  • Tab2->リストビュー。

listviewアイテムをクリックすると、詳細ページに移動しますactivity。バックを押すとlistviewウェルに戻ります。ただし、バックグラウンドでは、ビデオ (Tab1 コンテンツ) が再生されています。これを止める方法は?

私のコード:

...

public void onCreate(Bundle savedInstanceState) {
        // sets the Bundle
        super.onCreate(savedInstanceState);
        // sets the context
        setContentView(R.layout.videostream);
        myVideoView = (VideoView) findViewById(R.id.vview);
        mProgress = new ProgressDialog(this);


        PlayVideo();

    }

    private void PlayVideo() {
        try {

            mProgress = ProgressDialog.show(VideoActivity.this, "",
                    "Buffering video...", true);
            mProgress.setCancelable(true);


            myVideoView.setVideoURI(Uri.parse(vSource));
            myVideoView.setMediaController(new MediaController(this));
            myVideoView.requestFocus();
            myVideoView.setOnPreparedListener(new OnPreparedListener() {

                public void onPrepared(MediaPlayer mp) {
                    mProgress.dismiss();
                    myVideoView.start();
                }
            });

         } catch (Exception e) {

            mProgress.dismiss();
            System.out.println("Video Play Error :" + e.toString());
            finish();

        }

    }

    public void onSaveInstanceState(Bundle outState) {

        mStartTime = myVideoView.getCurrentPosition();
        outState.putInt("restartTime", mStartTime);
        super.onSaveInstanceState(outState);
    }

    @Override
    public void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        myInt = savedInstanceState.getInt("restartTime");
        myVideoView.seekTo(myInt);

        myVideoView.start();

    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {

        super.onConfigurationChanged(newConfig);

       // 2 means landscape and 1 means portait mode
       if (newConfig.orientation == 2) {
           mProgress.dismiss();

       }

    }
    @Override
    public void onPause() {
        super.onPause();

        myVideoView.stopPlayback();

    }
    @Override
      public void onResume() {
            super.onResume();

            PlayVideo();
        }
4

2 に答える 2

0

Sanjay は、2 つのタブで 1 つのことを実行できます。1 つのタブから別のタブに移動すると、1 つには vedio が含まれ、もう 1 つにはリストビューが含まれます。最初のアクティビティは onPause になり、戻ってくると最初のアクティビティは onresume になります。 onResume() で vedio を srtat し、onPause() で停止する必要があると思います。

それが機能する場合は、私に知らせてください。

于 2012-08-17T12:23:30.087 に答える
0

リストの onItemClickListener でビデオを一時停止し、onResume() で再開します

于 2012-08-17T10:22:17.953 に答える