アプリ内で再生する .m3u8 ビデオ ストリームを取得しようとしています。iOS 9および10のSwiftでプログラミングしています。
これが私がこれまでに得たものです:
import UIKit
import AVKit
import AVFoundation
import DynamicBlurView
class VideoPlayerViewController: AVPlayerViewController {
var urlString: String!
let blurView = DynamicBlurView()
override func viewDidLoad() {
super.viewDidLoad()
streamVideo()
}
func streamVideo() {
blurView.frame = view.frame
UIView.showProgressView(on: view, blurView: blurView)
let url = URL(string: urlString!)
let item = AVPlayerItem(url: url!)
player = AVPlayer(playerItem: item)
UIView.hideProgressView(on: view, blurView: blurView)
player?.play()
}
}
これは単純なはずですが、いたるところでエラーやクラッシュが発生しています。
これは私が得ているエラーです:
エラー Domain=AVFoundationErrorDomain Code=-11800 「操作を完了できませんでした」 UserInfo={NSLocalizedDescription=操作を完了できませんでした。不明なエラーが発生しました (-12782)}
私を助けてください!
編集:
運がないので、この提案を試しました。アプリはまだクラッシュします。その情報が誰かに役立つ場合、クラッシュは私を AppDelegate に連れて行きます。
import UIKit
import AVKit
import AVFoundation
import DynamicBlurView
class VideoPlayerViewController: AVPlayerViewController {
var urlString: String!
let blurView = DynamicBlurView()
override func viewDidLoad() {
super.viewDidLoad()
streamVideo()
}
func streamVideo() {
blurView.frame = view.frame
UIView.showProgressView(on: view, blurView: blurView)
let sampleURL = "https://devimages.apple.com.edgekey.net/streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"
guard let url = URL(string: sampleURL) else { return }
let playerItem = AVPlayerItem(url: url)
player = AVPlayer(playerItem: playerItem)
player?.play()
UIView.hideProgressView(on: view, blurView: blurView)
}
}