赛马林。加载 mp3 以通过 MediaPlayer 播放时遇到问题:FileNotFoundException
Posted
技术标签:
【中文标题】赛马林。加载 mp3 以通过 MediaPlayer 播放时遇到问题:FileNotFoundException【英文标题】:Xamarin. Got an issue with loading mp3 to play via MediaPlayer: FileNotFoundException 【发布时间】:2017-07-31 12:27:13 【问题描述】:我通过 Monogame (C#) 为 android 创建了一个应用程序。为了减小我的 .apk 大小,我决定不使用 Content Pipeline 进行音频。我发现我可以将 raw mp3 与 Song.FromUri() 方法一起使用。使用下一个代码
Song mySong;
//...
mySong = Song.FromUri("track01", new System.Uri("audio.mp3", System.UriKind.Relative));
//...
MediaPlayer.Play(mySong);
我得到了异常“未处理的异常:Java.IO.FileNotFoundException:track01”
MediaPlayer.Play(mySong);
,但我在主文件夹中有文件“audio.mp3”。 Solution Screenshot
将属性“构建操作”更改为“无”/“内容”/“AndroidAsset”并将“复制到输出目录”更改为“始终复制”并没有带来任何新内容。 我搜索了解决方案,但似乎没有人有同样的问题,或者他们很容易解决。我遇到的唯一类似问题here,但他们的解决方案没有帮助。 你有什么想法可以帮助我吗?谢谢。
【问题讨论】:
【参考方案1】:我不确定 Song.FromUri 方法,但这就是我使用声音文件的方式。
var player = new MediaPlayer();
var fd = global::Android.App.Application.Context.Assets.OpenFd("sounds/Wrong.mp3");
player.Prepared += (s, e) =>
player.Start();
;
player.SetDataSource(fd.FileDescriptor, fd.StartOffset, fd.Length);
player.Prepare();
我将 Wrong.mp3 保存在 Assets/sounds 文件夹中
【讨论】:
谢谢,您的解决方案有效。我认为这是我需要的。【参考方案2】:难道不能把音频文件放到资源里吗?
如果您打开项目属性,应该有一个资源选项卡。在此选项卡中,您应该能够添加不同的值(字符串、图像等),包括音频文件。如果您已在此处添加此内容,则应该可以通过资源管理器访问它。
如果这行得通,请告诉我!
【讨论】:
恐怕我做不到,因为Android Xamarin项目中没有Resource选项卡。只有Application/Android Manifest/Android Options/Build/Build Events/Reference Paths。顺便说一句,我检查了我的 Windows 窗体应用程序中有资源选项卡。无论如何,谢谢你的回答。以上是关于赛马林。加载 mp3 以通过 MediaPlayer 播放时遇到问题:FileNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章
React JS,webpack 配置不正确以加载 mp3 播放器
2023年美赛数学建模B题思路模型分析(重新构想马赛马拉岛)