ios - 如何在 iOS 中显示已安装的音乐播放器选项?
问题描述
我在 xamarin 做一个项目。
我确实需要一个弹出窗口,通过单击按钮显示我手机中安装的所有音乐应用程序,以便用户可以选择其中任何一个并独立播放音乐。
我可以在带有音乐意图的android中做到这一点。
这就像我想播放一个 mp3 文件并且我点击了一个按钮。iOS 系统在工作表中显示所有可用的音乐,通过选择其中之一,我可以播放该 mp3 文件。
解决方案
首先你声明一个openApp的接口:
public interface IOpenAppService
{
Task<bool> Launch(string stringUri);
}
然后,在您的 customRenderer 中:
[assembly: Xamarin.Forms.Dependency(typeof(OpenAppService))]
namespace OpenAppLaunch.iOS
{
public class OpenAppService : IOpenAppService
{
public Task<bool> Launch(string stringUri)
{
try
{
NSUrl request = new NSUrl(stringUrl);
bool isOpened = UIApplication.SharedApplication.OpenUrl(stringUrl);
if (isOpened == false)
UIApplication.SharedApplication.OpenUrl(new NSUrl(stringUrl));
return Task.FromResult(true);
}
catch (Exception ex)
{
Debug.WriteLine("Cannot open url: {0}, Error: {1}", request.AbsoluteString, ex.Message);
var alertView = new UIAlertView("Error", ex.Message, null, "OK", null);
alertView.Show();
return Task.FromResult(false);
}
}
}
您可以通过调用来使用它OpenAppService.Launch("skype://");
推荐阅读
- c# - 如何在此代码中正确使用取消令牌?
- laravel - vue-meta / Inertia:页面渲染之间的标题“未定义”
- python - 在 conda 环境中安装 PyQT
- flutter - Flutter - 在复制到服务器时修剪 0.5 秒的 mp3 结尾而不重新处理整个文件?
- android - 用于互联网连接的广播接收器,当热点开启时,它将调用两次
- azure - Azure Blob Storage Informatica 写入行为
- windows-installer - 在调查与 GPO 部署相关的错误时,如何获得更详细/详细的 Windows Installer 日志?
- c++ - C++ 模板模板类型推断
- sql - Hana 中的 SQL 触发器以捕获被删除的每一行的时间戳
- wordpress - Wordpress 层次分类法之间的链接