ios - 将循环的 mp4 背景添加到 iOS 应用程序注册

标签 ios swift avplayer avplayerlayer

我想最终应用这段代码,让我的应用程序在用户登录他们的社交媒体帐户时看起来更漂亮一些。我已经尝试过以下代码,但我的应用程序似乎在 mp4 结束后立即崩溃。

import UIKit

import AVFoundation

class ViewController: UIViewController {

  var avPlayer: AVPlayer!
  var avPlayerLayer: AVPlayerLayer!
  var paused: Bool = false

  override func viewDidLoad() {
    super.viewDidLoad()
    let theURL = Bundle.main.url(forResource: "Yeet", withExtension: "mp4")

    avPlayer = AVPlayer(url: theURL!)
    avPlayerLayer = AVPlayerLayer(player: avPlayer)
    avPlayerLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
    avPlayer.volume = 0
    avPlayer.actionAtItemEnd = AVPlayer.ActionAtItemEnd.none

    avPlayerLayer.frame = view.layer.bounds
    view.backgroundColor = UIColor.clear;
    view.layer.insertSublayer(avPlayerLayer, at: 0)

    NotificationCenter.default.addObserver(self, selector: Selector(("playerItemDidReachEnd:")), name:       NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: avPlayer.currentItem)
  }

    @objc func playerItemDidReachEnd(notification: NSNotification) {
    let p: AVPlayerItem = notification.object as! AVPlayerItem
      p.seek(to: CMTime.zero)
  }

  override func viewDidAppear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    avPlayer.play()
    paused = false
  }

  override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    avPlayer.pause()
    paused = true
  }
  override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
  }

}

最佳答案

您是否尝试过使用 AVPlayerLooper

看起来像@iwasrobbed has a solution适用于 iOS 10+ 设备。这是示例代码:

private var looper: AVPlayerLooper?

...

let queuePlayer = AVQueuePlayer(playerItem: item)
looper = AVPlayerLooper(player: queuePlayer, templateItem: item)
videoPlayerLayer.player = queuePlayer

要在离开 View 后禁用循环,在末尾添加这段代码:

looper?.disableLooping()

关于ios - 将循环的 mp4 背景添加到 iOS 应用程序注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55213625/

相关文章:

ios - m3u8 文件 AVAssetImageGenerator 错误

objective-c - 如何以编程方式设置 UIButton 的 Highlight Tint 颜色?

ios - 在 TableView 中重新排序按日期排序的单元格项目

ios - 如何在 swift 3 中将 AVPlayer 从 4 秒循环到 8 秒?

iphone - 动画中的SubView滑动,iphone

ios - URL 不在 Corona SDK 的 iOS webviews 中重定向

ios - 重新加载数据时刷新 tableView 闪烁

ios - Swift:从 Firebase 加载时图像从纵向旋转为横向

ios - 如何在 Swift3 iOS 中的特定持续时间内在 AVPlayer 中播放视频

ios - 调整音量 ios