use*_*455 5 macos cocoa http-live-streaming avplayer swift
基本上我正在尝试在 Cocoa Swift 中使用 AVPlayer 播放 m3u8 (HLS Live Stream)。我对这门语言相对较新,所以基本上抓取了一些用于播放本地视频文件的示例代码,并尝试修改它以播放实时流......但是改为:
https://i.stack.imgur.com/bU9GM.png
这是我到目前为止得到的(注释行是播放本地文件,它确实有效):
import Cocoa
import AVKit
import Foundation
import AVFoundation
class ViewController: NSViewController {
@IBOutlet weak var playerView: AVPlayerView!
var videoPlayer:AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
//let path = NSBundle.mainBundle().pathForResource("sample", ofType: "mov")
//var fileURL = NSURL(fileURLWithPath: path!)
let fileURL = NSURL(string: "http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/sl.m3u8")
let avAsset = AVURLAsset(URL: fileURL!, options: nil)
let playerItem = AVPlayerItem(asset: avAsset)
videoPlayer = AVPlayer(playerItem: playerItem)
playerView.player = videoPlayer
videoPlayer.play()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢任何有关如何使该代码工作或引导我走向正确方向的帮助!
我尝试将您的代码粘贴到新的 OS X 项目(或 macOS,因为我们现在必须开始调用它:))
当我启动该项目时,我在控制台中收到此错误:
2016-06-21 09:09:27.860 Videoplayer[2494:169209] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
Run Code Online (Sandbox Code Playgroud)
我不知道您是否启用了控制台,它位于屏幕的底部,前提是您启用了调试区域。
如果您尚未启用调试区域,请在 Xcode 顶部启用它
然后您需要确保也显示控制台,这是在 Xcode 的底部完成的:
好的,现在您可以看到错误,然后如何修复它:)
此消息基本上告诉您 Apple 已阻止访问HTTP. 这是在 OS X 10.11 和 iOS 9 中引入的,但可以禁用。
正如控制台中所说:
可以通过应用程序的 Info.plist 文件配置临时例外。
这意味着您应该向您的info.plist文件添加一个新密钥。
您可以将其添加为“原始”plist 数据,如下所示:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Run Code Online (Sandbox Code Playgroud)
或者您可以将其添加到 plist 编辑器中,如下所示:
这个问题和精彩的答案比我更好地描述了这个过程
如果我这样做,我就能够运行您的代码并可以观看直播,所以我希望这对您也有帮助。
| 归档时间: |
|
| 查看次数: |
9057 次 |
| 最近记录: |