Xamarin.forms NSUrl未正确初始化
我在Xamarin.ios项目的音乐文件夹中放置了25个mp3文件。 我调用了Play函数并输入了一个我想播放的mp3文件的名称。我创建了一个字符串对象,其中包含文件路径。 然后我创建另一个名为withFileName的string对象,其中包含传递到函数中的路径和歌曲名。withFileName变量看起来正确 当我执行指令时Xamarin.forms NSUrl未正确初始化,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,我在Xamarin.ios项目的音乐文件夹中放置了25个mp3文件。 我调用了Play函数并输入了一个我想播放的mp3文件的名称。我创建了一个字符串对象,其中包含文件路径。 然后我创建另一个名为withFileName的string对象,其中包含传递到函数中的路径和歌曲名。withFileName变量看起来正确 当我执行指令时 songURL = new NSUrl(withFileName); 我得到以下例外 System.Exception:无法初始化“Foundation.NSUrl”类
songURL = new NSUrl(withFileName);
我得到以下例外
System.Exception:无法初始化“Foundation.NSUrl”类型的实例:本机“initWithString:”方法返回nil。通过将MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure设置为false,可以忽略此条件。在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();
}
看起来您可以获得嵌入到项目中的文件的正确路径。然后,如果要获取文件的url,应使用:
new NSUrl(filePath, false);
//or
NSUrl.FromFilename(filePath)
您的第一个示例有效,但编译器无法识别第二个示例。我还有一个问题。是否可以使用~字符创建NSUrl对象?如果是的话,是如何做到的?你能提供一个关于这个主题的文档链接吗。代码也在IOS iPhone模拟器下运行。当部署到本机IPhone时,相同的代码会起作用吗?我说的是NSUrl文件路径。@BobBarbara如果你的文件在project或sandbox中,我们应该从文件路径创建url。另一方面,如果你想加载一个网站。我们也将创建一个url,在本例中,我们是从字符串创建的。@BobBarbara在大多数情况下,我们希望通过url获取文件,所以我们总是使用filePath的方法。