我是编程业务和制作广播应用程序的新手,该应用程序应该处理屏幕广播功能(iPhone控制中心-->广播。就像Mobcrush)。
因此,我尝试实现 WWDC 上引入的广播应用程序扩展,但我的演示应用程序运行不佳。我的演示应用程序只是不广播,只是显示一个错误警报,显示“MYDemoApp 的直播已停止,原因是:(null)”
这是我在演示应用程序中所做的事情
实现应用扩展(BroadCast Extension。这使得 SampleHandler、BroadcastSetupViewController)
实现应用程序组(设置功能、BundleIdentifier、 在 Developer.Apple.com 中设置应用程序组和配置文件)
Pod 安装并从其他开发者的演示应用程序 (HaishinKit) 复制了我没有编写的代码 (https://github.com/shogo4405/HaishinKit.swift)
将 RTMP URL 字符串放入 BroadcastSetupViewController 的 userDidFinishSetup() 中 (这个应用程序是演示版,所以我只是输入我自己的 RTMP 地址和流 key 。像这样:rtmp://bc.CompanyName.tv/app/VeryLongStreamKey)
另外,我认为这不是 RTMP URL 问题。因为我已经使用该 URL 进行了相机(前、后)广播测试(不是应用程序扩展。仅在简单的 ViewController 中)。
你能告诉我一个提示吗?如有任何反馈,我们将不胜感激!
感谢您阅读我关于编码的第一个问题。
最佳答案
我发现iOS广播扩展有很多限制。 - 如果扩展由容器应用程序通过 API 启动,则当应用程序进入后台时网络将关闭。 - 无法访问文件。 - 无法访问 Assets 。 - Swift print() 什么也不做。使用 NSLog() 和 idevicesyslog。 - Xcode“通过 PID 或名称附加到进程...”有效。
如果出现“由于 (null)”错误,请通过附加进程在 Xcode 上进行调试。 或者放入 NSLog() 并通过 idevicesyslog 查看。
关于iOS 广播扩展(屏幕广播)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317079/