我有一个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();
}
}
我该如何解决这个问题?任何帮助将不胜感激。