NSUrl未正确初始化

时间:2018-01-26 02:48:24

标签: xamarin.forms xamarin.ios

我已经在"音乐文件夹"中放置了25个mp3文件。在我的Xamarin.ios项目中。 我调用了Play功能并传入了我想要播放的mp3文件的名称。我创建了一个包含filePath的字符串对象。 然后我创建另一个名为" withFileName"的字符串对象;包含传递给函数的路径和歌曲名称。 withFileName变量看起来是正确的。

当我执行指令时......

songURL = new NSUrl(withFileName);

我收到以下异常......

  

System.Exception:无法初始化类型' Foundation.NSUrl':本机' initWithString:'方法返回零。通过将MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure设置为false可以忽略此条件。在Foundation.NSO ......

我迷路了,需要一些帮助。

代码段:

public void Play(String song)
    {

        String dir = Directory.GetCurrentDirectory();
        String filePath = Path.Combine(dir, "Music");

        String withFileName = String.Format("{0}/{1}", filePath, song);

        NSUrl songURL = null;  

        try
        {

            songURL = new NSUrl(withFileName);
        }
        catch (Exception e)
        {
            string msg = e.Message;  
        }

        NSError err;

        _audioPlayer = new AVAudioPlayer( songURL,"Song", out err );
        _audioPlayer.Play();

    }

1 个答案:

答案 0 :(得分:0)

看来你可以在项目中获得正确的文件嵌入路径。然后,如果你想获得文件的网址,你应该使用:

new NSUrl(filePath, false);
//or
NSUrl.FromFilename(filePath)