如何在 iOS 中使用 VLC Player 使用 libvlc 播放 360 度视频

Posted

技术标签:

【中文标题】如何在 iOS 中使用 VLC Player 使用 libvlc 播放 360 度视频【英文标题】:How to play 360 video using libvlc using VLC Player in iOS 【发布时间】:2020-01-08 06:44:46 【问题描述】:

我正在创建一个 ios 应用程序,我必须在其中使用 VLCPlayer 播放 360 度视频。我已经通过 pod 添加了 VLC,并在本地播放了 360 视频。但 VLC 无法平移视频。 VLC 不会将视频视为 360 视频。我应该做很多设置来使用 VLC 播放 360 视频吗?

示例 360 视频网址 https://drive.google.com/file/d/1TzoxrWMdiLBuf5TTq0v6lz-KNtxeMOb2/view

override func viewDidLoad() 
    super.viewDidLoad()
    guard let path = Bundle.main.path(forResource: "rico", ofType:"mov") else 
        debugPrint("video.m4v not found")
        return
    
    mediaURL = path
    setupMediaPLayer()

override func viewWillAppear(_ animated: Bool) 
    super.viewWillAppear(animated)
    mediaPlayer.play()

func setupMediaPLayer() 
    mediaPlayer.delegate = self
    mediaPlayer.drawable = movieView
    mediaPlayer.media = VLCMedia(url: URL(fileURLWithPath: mediaURL!))

【问题讨论】:

您的视频标记是否正确?是否包含 360 元数据? 是的。它与从应用商店下载的 vlc 应用程序正常工作。当我将相同的视频作为通过 cocoapod 集成的 vlc 播放器的文件路径提供时,它的播放就像普通视频一样。 请出示您的代码 不在评论中,在您的原始问题中。请使用代码格式...***.com/help/how-to-ask 是的,我已经编辑了问题,请检查 【参考方案1】:

您需要自己处理UIPinchGestureRecognizer 360 度视频。

- (void)handlePinchGesture:(UIPinchGestureRecognizer *)recognizer

    CGFloat diff = DEFAULT_FOV * -(ZOOM_SENSITIVITY * recognizer.velocity / _screenPixelSize.width);

    if ([_vpc currentMediaIs360Video]) 
        [self zoom360Video:diff];
     else if (recognizer.velocity < 0. && _closeGestureEnabled) 
        [self minimizePlayback:nil];
    

查看此代码以获取示例https://github.com/videolan/vlc-ios/blob/eab270fb5cf9622386aef7040113e9b37fe2406f/Sources/VLCMovieViewController.m#L783

【讨论】:

以上是关于如何在 iOS 中使用 VLC Player 使用 libvlc 播放 360 度视频的主要内容,如果未能解决你的问题,请参考以下文章

vlc player验证交换机igmp

[ 请教]VLC Media Player 怎么用啊

流媒体播放器VLC media player

通过浏览器在 VLC Player 上打开视频流

开源软件vlc media player 暗藏一个游戏功能

Debian11安装VLC Media Player视频播放器