Xamarin"抱歉,此视频无法播放"

时间:2015-01-30 05:07:55

标签: xamarin xamarin.android media-player android-videoview setonerrorlistener

我该如何处理这个错误? 请帮助我摆脱这种情况。

private void previewVideo(){

            try{

            var path = Android.Net.Uri.Parse(App._file.AbsolutePath);

            preview.SetVideoURI (path);

            preview.Start ();

            }

            catch(Exception e){
                e.GetBaseException ();
            }

        }

1 个答案:

答案 0 :(得分:0)

您很幸运我正在关注您之前提出的问题。请尽量让您的问题尽可能详细,这样我们就可以更轻松地进行分析,并可能复制错误。

为了能够在VideoView上设置错误监听器,VideoView需要一个实现Android.Media.MediaPlayer.IOnErrorListener接口的对象。

您可以通过让您的Activity实现前面提到的界面,并将Activity设置为VideoView的ErrorListener

来实现这一点。
public class MainActivity : Activity, Android.Media.MediaPlayer.IOnErrorListener
{

    ...

    protected override void OnCreate(Bundle bundle)
    {
        ...
        preview = FindViewById<VideoView> (Resource.Id.SampleVideoView);
        preview.SetOnErrorListener(this); // <- Set the error listener
        ...
    }

    ...

    //The implementation of MediaPlayer.IOnErrorListener
    public bool OnError(MediaPlayer player, MediaError error, int extra)
    {
        // Do Something here because error happened
    }

    ...
}

通过这样做,当VideoView中发生错误时,VideoView将调用公共OnError方法。

Android Docs of OnErrorListener您可以看到OnError方法应返回的内容。

  

<强>返回

     

如果方法处理错误,则为true;如果不是,则为false。返回false,或者根本没有OnErrorListener,将导致调用OnCompletionListener。