【发布时间】:2018-10-11 07:09:42
【问题描述】:
我正在开发一个应用程序,该应用程序旨在通过使用 TuneIn URL 播放生活广播。在 TuneIn 中,API 中有一个 http get 请求,它提供了一个包含所有 URL 及其比特率的 JSON。
所以 http://opml.radiotime.com/Tune.ashx?id=s150147&formats=aac,mp3&render=json
会回来
{ "head": { "status": "200"}, "body": [
{ "element" : "audio",
"url": "http://player.absoluteradio.co.uk/tunein.php?i=a664.aac",
"reliability": 95,
"bitrate": 64,
"media_type": "aac",
"position": 0,
"player_width": 529,
"player_height": 716,
"guide_id": "e89279187",
"is_direct": false }, { "element" : "audio",
"url": "http://player.absoluteradio.co.uk/tunein.php?i=a6low.mp3",
"reliability": 78,
"bitrate": 48,
"media_type": "mp3",
"position": 0,
"player_width": 529,
"player_height": 716,
"guide_id": "e89279188",
"is_direct": false }, { "element" : "audio",
"url": "http://player.absoluteradio.co.uk/tunein.php?i=a624.aac",
"reliability": 29,
"bitrate": 24,
"media_type": "aac",
"position": 0,
"player_width": 529,
"player_height": 716,
"guide_id": "e89279186",
"is_direct": false }] }
我的第一种方法是使用给定的 URL 设置一个 AVPlayer,但它没有播放。
此外,如果您在 chrome 浏览器中复制并粘贴 URL,它会开始下载一个需要很长时间的文件。
用wireshark检查,我终于发现streaming URL是一个不同的,并且在你第一次请求文件时提供了Header。
我知道这已经在 android 上通过拦截标头完成了,但是,是否可以在 iOS 上做同样的事情?
我一直在寻找一些库,MobileVLCKit 似乎是一个候选者,但不确定我如何冒着我的应用被拒绝的风险。
既然现在流媒体是非常流行的动作,我能否以“苹果方式”实现这一点
谢谢
【问题讨论】:
标签: ios swift avfoundation avkit