为啥视频没有播放,只在 swift 中显示加载程序

Posted

技术标签:

【中文标题】为啥视频没有播放,只在 swift 中显示加载程序【英文标题】:why video is not getting played only showing loader in swift为什么视频没有播放,只在 swift 中显示加载程序 【发布时间】:2020-10-19 15:40:34 【问题描述】:

我正在尝试从 web url 播放视频,它仅显示缓冲加载器但没有播放我使用了以下代码。

override func viewDidAppear(_ animated: Bool) 
    super.viewDidAppear(animated)

    let url = URL(string: "https://sandbox-api.digiboxx.com/uploads/E2D6024483AB4B04/1602945683_sample_640x360.mp4")!

    playVideo(url: url)


func playVideo(url: URL) 
    let player = AVPlayer(url: url)

    let vc = AVPlayerViewController()
    vc.player = player

    self.present(vc, animated: true)  vc.player?.play() 

【问题讨论】:

1) theme.co/forum/t/… 2) ***.com/a/36299252/2522457 检查此链接。希望它会工作 嗨!我认为问题来自您的 URL 源。 Safari 也无法播放视频。您应该尝试使用其他 URL:“techslides.com/demos/sample-videos/small.mp4”。 ***.com/a/21121914/1974224 - 您的视频是 H.264 视频,也许这会有所帮助 【参考方案1】:

我只是在计算机上的浏览器 (Safari) 中尝试了您的 URL,但没有播放任何内容。所以我认为另一端的 URL 或文件有问题。

【讨论】:

奇怪,它适合我 好的,但是 AVPlayer 不是 Chrome 浏览器;它使用与 Safari 相同的机制。所以我坚持我的回答。这个文件有问题。完毕。你问为什么它不播放,我在说为什么我认为是这样。【参考方案2】:

我测试了您的链接并且视频正在加载,所以我不知道您的代码为什么不起作用...

这就是我在 Swift 中使用 VideoPlayer 的方式:

import UIKit
import AVKit

class MediaManager: UIViewController 

    var player = AVPlayer()

    override func viewDidLoad() 
        super.viewDidLoad()
        play(url: "yourUrl")
    

    func play (url: String) 
    
        player = AVPlayer(url: URL(string: url)!)
    
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
    
        self.view.present(playerViewController, animated: false)  self.player.play() 
    

试试我的代码,告诉我它是否适合你

【讨论】:

以上是关于为啥视频没有播放,只在 swift 中显示加载程序的主要内容,如果未能解决你的问题,请参考以下文章

Swift:Parse 不会从 URL 加载视频

应用程序在 swift 中为所有视频 PHAsset 播放相同的视频

Swift 应用程序上的 AVPlayer 显示黑屏,但在播放视频时播放音频

Swift 表格视图,在表格视图单元格中播放视频,内存泄漏

为啥 DirectShow 加载视频字幕文件?

为啥 Youtube 视频没有在 webview android 中播放