1

アプリ内で再生する .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)
    }
}
4

1 に答える 1