1

プロジェクトを開始していて、アプリの実行時にメインアクティビティでビデオを再現したいのですが、ユーザーがビデオを押すと、別のアクティビティに移動します。ユーザーが戻るボタンを押すと、ユーザーは再びメイン画面に移動し、最初からビデオを再生します。ビデオはrawディレクトリにあります。

問題は、アクティビティが最初に作成されたときにビデオビューがビデオを再生しているが、ユーザーが他のアクティビティ(私の場合はMenuSectionアクティビティ)から戻ったときにビデオを再生していないことです。コードは本当に単純ですが、とにかく貼り付けます:

 public class MainActivity extends Activity {
   private VideoView mVideoView;
   LinearLayout menuSection;
   @Override

   public void onCreate(Bundle icicle) {
      super.onCreate(icicle);
      setContentView(R.layout.main);
      mVideoView = (VideoView) findViewById(R.id.surface_view);
      mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.documentariesandyou));
      mVideoView.requestFocus();
      mVideoView.setMediaController(null); //i dont want the controls of the videoview.
      mVideoView.start();
      menuSection = (LinearLayout) findViewById(R.id.menuSection);
      menuSection.setOnClickListener(new menuSectionListener());

   }

class menuSectionListener implements OnClickListener {
    public void onClick(View v) {
        Intent staticActivityIntent = new Intent(MainActivity.this, MenuSection.class);
        startActivity(staticActivityIntent);        
    }
}

}

MenuSectionは、「Hello world」のようなテキストビューを表示するアクティビティであるため、貼り付けません。

4

3 に答える 3

2

asの代わりに移動mVideoView.start();します :onResume()onCreate()

@Override
    protected void onResume() {
        super.onResume();
        mVideoView.start();
    }

アクティビティの管理ライフサイクル onResume()は、アクティビティがすでに実行されているときにアクティビティから呼び出されるを参照してください。

于 2012-07-04T19:29:01.910 に答える
1

オーバーライドvideo.pause()されたアクティビティのメソッドを呼び出し、アクティビティのメソッドを呼び出します。onPause()video.resume()onResume()

于 2012-07-04T19:32:59.680 に答える
0

の代わりにに移動mVideoView.start();します。onStart()onCreate()

アクティビティのライフサイクルの詳細については、開発者向けドキュメントのアクティビティライフサイクルを参照してください。

setVideoURI();確かではありませんが、に移動する必要があるかもしれませんonStart()

于 2012-07-04T19:24:55.020 に答える