标签: avplayerviewcontroller

在Swift的AVPlayerViewController中播放来自Youtube的视频

好的,所以我想在我的应用程序中播放电影预告片.用户将按下按钮,然后播放视频.我已将import AVKitimport AVFoundation行添加到我的文件中.这是我到目前为止制作视频的代码:

@IBAction func playTrailerPressed(sender: AnyObject) {

    let videoURL = NSURL(string: "https://youtu.be/d88APYIGkjk")
    let player = AVPlayer(URL: videoURL!)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player
    self.presentViewController(playerViewController, animated: true) {

        playerViewController.player!.play()

    }

}
Run Code Online (Sandbox Code Playgroud)

这似乎是推出一个AVPlayerViewController,但不播放来自YouTube的视频.相反,我得到以下内容:

在此输入图像描述

我尝试过来自YouTube的共享和嵌入链接,但都没有工作.如果我使用最后有视频文件名的链接,它可以正常播放,例如:"https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"- 所以我知道代码有效.

有没有人知道这是否有可能以这种方式使用YouTube视频?(我也试过IMDb和Apple的预告片,但它是一样的).

谢谢你的帮助!

youtube ios swift avplayerviewcontroller

6
推荐指数
1
解决办法
2万
查看次数

无法在AVPlayer中播放mp4视频

在此输入图像描述我正在使用AVPlayer播放视频.我无法播放.mp4视频.我得到了这个黑屏.这是我的代码.

`NSString *filePath = [self.videoArray objectAtIndex:index];
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp4];
url = [[NSURL alloc] initFileURLWithPath: soundFilePath];
playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.videoGravity = AVLayerVideoGravityResize;
playerViewController.view.frame = self.view.bounds;
playerViewController.showsPlaybackControls = NO;
video=[AVPlayer playerWithURL:url];
playerViewController.player = _video;
playerViewController.view.userInteractionEnabled = false;
[video play];
[self.view addSubview:playerViewController.view];`
Run Code Online (Sandbox Code Playgroud)

video objective-c avplayer avplayerviewcontroller

6
推荐指数
1
解决办法
3263
查看次数

在swift中,如何在AVPlayerViewController中播放视频时检测触摸

我已经以编程方式添加了AVPlayerViewController一个UIViewController.我可以在玩家完成游戏时收到通知(playerDidFinishPlaying).我还想知道用户是否在播放视频时触摸了屏幕,但我没有找到任何相关的通知.

ios avplayer swift avplayerviewcontroller

6
推荐指数
1
解决办法
3164
查看次数

iOS 10 AVPlayer 不会从没有扩展名且视频/mp4 作为内容类型的 URL 流式传输视频

目前,我们使用标准的AVPlayerviaAVPlayerViewController来播放视频。我们正在以https://ourdomain/media/mediaid?jwt=authTokenHere格式从 url 流式传输视频。如您所见,该 url 没有扩展名;但是,在有效负载上设置了标头以指示响应是视频。

HTTP 响应头

虽然链接导致视频在桌面 Safari 和 Chrome 中播放良好,但它不会AVPlayer在我们的应用程序中通过 iOS 播放。是否有一些特定的格式AVPlayer

video ios mime-types avplayer avplayerviewcontroller

6
推荐指数
1
解决办法
3251
查看次数

使用 AVPlayerViewController 时如何检测用户选择的字幕

使用 时AVPlayerViewController,用户可以选择字幕是使用特定语言off,还是设置为auto。设置requiresFullSubtitles属性我可以强制显示字幕,但这不是我想要的。

有没有办法检测用户为字幕设置选择了什么,是选择了语言off,还是auto

正在播放信息中心

ios avplayerviewcontroller tvos

6
推荐指数
1
解决办法
2619
查看次数

以编程方式调用AVPlayerViewController的全屏按钮

我有一个用 AVPlayerViewController 包装的 AVPlayer。我的整个应用程序处于纵向模式,AVPlayer 是其中一个视图的子视图。我想在设备像 YouTube 应用程序一样旋转时自动全屏显示视频。有没有办法以编程方式调用 AVPlayerViewController 的全屏按钮方法。在文档中没有找到任何内容。

fullscreen ios avplayer avplayerviewcontroller

5
推荐指数
0
解决办法
466
查看次数

AVPlayerViewController 中的自定义菜单项

在 tvOS 上,是否可以将自定义项目添加到AVPlayerViewController信息/字幕/音频菜单中?不仅仅是添加元数据项,而是一个全新的部分。我想在字幕之后提供一个额外的菜单项,用于选择播放速度,并可选择 1.0x、2.0x 等选项。

如果这不可能,那么是否可以像 iOS 上那样AVPlayerViewController使用嵌入的自定义视图?AVPlayer

avkit avplayerviewcontroller tvos

5
推荐指数
0
解决办法
393
查看次数

检测 AVPlayerViewController 是否正在播放视频或缓冲并向播放器添加叠加层

  1. 我必须检测视频是处于播放模式还是缓冲模式。我正在从 URL 加载视频。我已经尝试了下面的代码,一旦视频开始播放,我就可以进行跟踪,但不能在处于缓冲状态时进行跟踪。
  2. 另外,我想在我的播放器中添加一个叠加视图。我试图在 AVPlayer 中添加叠加层,但是在全屏模式下叠加层消失了。

需要一些建议。提前致谢。下面是我的代码:

    let playerAV = AVPlayerViewController()
    var player = AVPlayer()
    player = AVPlayer(URL: url)
    print(url)
    playerAV.player = player
    playerAV.view.frame = CGRectMake(0, 0,  self.videoView.frame.width,  self.videoView.frame.height)
    self.addChildViewController(playerAV)
    self.videoView.addSubview(playerAV.view)
    playerAV.didMoveToParentViewController(self)
    playerAV.player?.play()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.notificationObserver(_:)), name:AVPlayerItemDidPlayToEndTimeNotification , object: player.currentItem)
        _ = UIDevice.beginGeneratingDeviceOrientationNotifications
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.deviceOrientationDidChange(_:)) , name:
        UIDeviceOrientationDidChangeNotification, object: nil)
    player.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
  player.addPeriodicTimeObserverForInterval(CMTime(value: 1, timescale: 3), queue: dispatch_get_main_queue()) { [weak self] time in
    self?.handlePlayerStatus(time)
  }

  func handlePlayerStatus(time: CMTime) {
     if player.status == .ReadyToPlay { …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayerviewcontroller

5
推荐指数
1
解决办法
6711
查看次数

AVPlayerLayer 显示黑屏但声音正常

我尝试在AVPlayerLayer中显示本地录制的视频,该视频有时可以工作。我可以听到录制视频中的音频,但看不到视频。有时视频和音频都可以工作,有时只有音频。

我已经尝试过使用AVPlayerLayerAVPlayerViewController,但这两种情况都会出现相同的问题。所以这不是因为框架错误。

示例代码AVPlayerViewController

let player = AVPlayer(url: url)
let playerController = AVPlayerViewController()
playerController.player = player

self.present(playerController, animated: true) {
  player.play()
}
Run Code Online (Sandbox Code Playgroud)

示例代码AVPlayerLayer

let asset = AVAsset(url: url)
let item = AVPlayerItem(asset: asset)

self.player = AVPlayer(playerItem: item)
self.player?.addObserver(self, forKeyPath: "status", options: NSKeyValueObservingOptions(), context: nil)
self.playerLayer = AVPlayerLayer(player: self.player!)
self.playerLayer?.frame = imageView.bounds
imageView.layer.addSublayer(self.playerLayer!)
Run Code Online (Sandbox Code Playgroud)

编辑1:

观察播放器状态时,错误nil状态readyToPlay

编辑2:

如果 URL 是远程的,则工作正常。

编辑3:

如果我在视频完成导出后等待几秒钟,似乎可以工作。是否是文件未 100% 写入文件系统的原因? …

avfoundation ios avplayerlayer swift avplayerviewcontroller

5
推荐指数
1
解决办法
3764
查看次数

如何控制 AVPictureInPictureController 播放/暂停按钮?

我在我的应用程序中使用 AVPictureInPictureController 及其委托方法来使用画中画功能。我按照APPLE文档来实现这个功能。我很高兴它运行良好。

但现在我想限制用户在某些错误情况下播放/暂停内容。我尝试在 PIP 模式(画中画模式)下隐藏控件,但失败了。

有什么可能的方法来限制用户的操作吗?

或者任何其他方法可以解决我的问题?

ipad ios avplayer swift avplayerviewcontroller

5
推荐指数
0
解决办法
909
查看次数