使用VideoView的Android Activity两次开始Xamarin

时间:2015-09-03 06:11:21

标签: android android-fragments video xamarin android-videoview

我有一个Fragment,它在横向模式下打开一个新活动,它有一个视频来播放视频。视频完成时的问题是视频的活动应该完成,控件应该自动返回到之前的片段。类似应该是按下后退按钮时。

目前,当视频完成时,它会重新启动,并且只有在第二次完成时,控制才会重新启动到前一个片段。同样是按下后退按钮即。我按了两次后退按钮以完成视频的活动。

以下是我正在做的一些代码: -

MainFragment

Intent mIntent = new Intent();
            mIntent.AddFlags(ActivityFlags.ReorderToFront);
            mIntent.AddFlags(ActivityFlags.NewTask);
            mIntent.SetClass(this.Activity, typeof(VideoActivity));
            Activity.StartActivity(mIntent);

VideoActivity

 public class VideoActivity : Activity, Android.Media.MediaPlayer.IOnCompletionListener
    {
        private VideoView mVV;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            RequestWindowFeature(WindowFeatures.NoTitle);
            SetContentView(Resource.Layout.VideoLayout);

            // Create your application here
            int fileRes = 0;
            fileRes = Resource.Raw.trailer;


            mVV = FindViewById<VideoView>(Resource.Id.myvideoview);
            mVV.SetOnCompletionListener(this);

            if(!mVV.IsPlaying)
            {
            if (!playFileRes(fileRes)) return;

            MediaController mc = new MediaController(this);
            mc.SetAnchorView(mVV);
            mVV.SetMediaController(mc);
            }
            else
            {
                mVV.Suspend();
                Finish();

            }



        }

        private bool playFileRes(int fileRes)
        {
            if (fileRes == 0)
            {
                stopPlaying();
                return false;
            }
            else
            {
                mVV.SetVideoURI(Android.Net.Uri.Parse("android.resource://" + PackageName + "/" + fileRes.ToString()));
                return true;
            }
        }

        public void stopPlaying()
        {
            mVV.StopPlayback();
            this.Finish();
        }

        public void OnCompletion(Android.Media.MediaPlayer mp)
        {
            stopPlaying();

        }
        protected override void OnResume()
        {
            mVV.Resume();
        }
        protected override void OnPause()
        {
            stopPlaying();
        }
        public override void OnBackPressed()
        {
            stopPlaying();
        }

    }

我该如何解决这个问题?任何帮助将不胜感激。

0 个答案:

没有答案