Это видео недоступно | Код ошибки: 152 – 4.IOS

Программируем под IOS
Ответить
Anonymous
 Это видео недоступно | Код ошибки: 152 – 4.

Сообщение Anonymous »

При попытке показать видео YouTube в моем приложении с помощью встроенного способа отображается код ошибки: 152 – 4.

Я просто хочу создать представление, в котором передача идентификатора YouTube будет воспроизводить видео YouTube на определенных экранах/представлениях моего приложения. Теперь эта ошибка возникает при попытке воспроизвести видео.
Какое решение этой проблемы? Пока не могу найти.
Мой код:
final class YouTubePlayerViewController: UIViewController, WKNavigationDelegate {

var youtubeId: String
private var webView: WKWebView!

init(youtubeId: String) {
self.youtubeId = youtubeId
super.init(nibName: nil, bundle: nil)
}

required init?(coder: NSCoder) { fatalError() }

override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
setupWebView()
loadPlayer()
}

private func setupWebView() {
let config = WKWebViewConfiguration()
config.allowsInlineMediaPlayback = true
config.allowsAirPlayForMediaPlayback = true
config.allowsPictureInPictureMediaPlayback = true
config.mediaTypesRequiringUserActionForPlayback = []

// Required — tells WKWebView it is allowed to autoplay / inline play
let prefs = WKWebpagePreferences()
prefs.allowsContentJavaScript = true
config.defaultWebpagePreferences = prefs

webView = WKWebView(frame: view.bounds, configuration: config)
webView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
webView.navigationDelegate = self
webView.scrollView.isScrollEnabled = false
webView.scrollView.bounces = false
webView.backgroundColor = .black
webView.isOpaque = true
view.addSubview(webView)
}

func loadPlayer() {
// The critical trick: we load a real youtube.com URL as the *base*
// and inject an autoplay embed via HTML. Because the base URL is
// genuinely youtube.com, WKWebView passes YouTube's origin check.
let html = """





html, body {
margin: 0; padding: 0;
background: #000;
width: 100%; height: 100%;
overflow: hidden;
}
iframe {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
border: none;
}







"""

// baseURL MUST be a real youtube.com origin — this is what fixes Error 152
webView.loadHTMLString(html, baseURL: URL(string: "https://www.youtube.com"))
}

func updateYoutubeId(_ newId: String) {
guard newId != youtubeId else { return }
youtubeId = newId
loadPlayer()
}
}


Подробнее здесь: https://stackoverflow.com/questions/799 ... code-152-4
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»