我尝试在Xamarin.Forms应用程序中添加音频。我想将音频文件放在Subfolder
文件夹的Assets
中,例如Assets/Subfolder/Audio.mp3
我发现了一个提供示例的插件SimpleAudioPlayer。以下代码与提供的代码类似。
var player = Plugin.SimpleAudioPlayer.CrossSimpleAudioPlayer.Current;
player.Load("Audio.mp3");
现在,我想将音频文件放在子文件夹中,并尝试调用
player.Load("Subfolder/Audio.mp3");
但是我得到了Java.IO.FileNotFoundException
然后,我查看了implementation of the Load function,然后输入了以下代码
public bool Load(string fileName)
{
player.Reset();
AssetFileDescriptor afd = Android.App.Application.Context.Assets.OpenFd(fileName);
player?.SetDataSource(afd.FileDescriptor, afd.StartOffset, afd.Length);
return PreparePlayer();
}
将filename
粘贴到Assets.OpenFd()
功能的位置。返回AndroidFileDesriptor
该文档实际上并没有提供Microsoft和Android网站的任何信息。我的问题是
我将不胜感激,因为经过很长一段时间的尝试,我仍然没有任何想法。
根据软件包的文档,您将无法做到这一点,因为必须使用player.Load(GetStreamFromFile("mysound.wav"));
,其中GetStreamFromFile
基本上是]
Stream GetStreamFromFile(string filename)
{
var assembly = typeof(App).GetTypeInfo().Assembly;
var stream = assembly.GetManifestResourceStream("App." + filename);
// Obviously App in the line above should be replaced with your app
return stream;
}
然后,您必须输入player.Load(GetStreamFromFile("Subfolder.mysound.wav"));
,其中Subfolder
是子文件夹的名称。