标签: avplayerlayer

AVPlayer seekToTime每秒只生成一帧

如何AVPlayerLayer在方法中显示精确视频的帧seekToTime.

现在[AVPlayer seekToTime:CMTimeMakeWithSeconds(CMTimeGetSeconds(A, B))],AVPlayerLayer仅在每1秒更改一次显示帧,例如1.50-2.50-3.50.我希望它以4.45秒的速度显示帧.可能吗?

video frame ios avplayer avplayerlayer

3
推荐指数
1
解决办法
1177
查看次数

在AVPlayerLayer和AVPlayerViewController中同步视频

我正在使用其中AVPlayer显示正在播放的视频URL。它分为两个部分:

1.首先,我已经嵌入AVPlayer使用的视图的子层AVPlayerLayer,即

var player: AVPlayer?

func configure() {
    let urlString = "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"
    if let url = URL(string: urlString) {
        self.player = AVPlayer(url: url)
        let playerLayer = AVPlayerLayer(player: self.player)
        playerLayer.frame = self.view.bounds
        self.view.layer.addSublayer(playerLayer)
        player.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,正在播放视频。

2.其次,在UIButton水龙头上,我将AVPlayerViewController使用与AVPlayer我先前创建的实例相同的实例,即

@IBAction func onTapVideoButton(_ sender: UIButton) {
    self.player?.pause()
    let controller = AVPlayerViewController()
    controller.player = self.player
    self.present(controller, animated: true) {
        self.player?.play()

    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里面临的问题是,AVPlayerViewController打开后,视频停止播放,但音频仍在播放。

我要在和中同步视频。 …

ios avplayer avplayerlayer swift avplayerviewcontroller

3
推荐指数
1
解决办法
431
查看次数

Swift:如何将AVPlayerLayer添加到NSView的后层

我有一个NSView像这样的in接口构建器:

设定

我在视图(videoView)内部有按钮和标签,用于控制视频的播放。当我AVPlayerLayer像这样向视图添加(myPlayerLayer)时:将

self.videoView.layer?.addSublayer(myPlayerLayer)

其添加AVPlayerLayer为顶层,从而覆盖按钮。如何将播放器图层添加到背面,使其不覆盖其他任何内容?

非常感谢。

cocoa layer nsview avplayerlayer swift

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

AVPlayer强制横向模式用于全屏

我正在使用AVPlayer播放视频,该视频在我的应用中约为320x200帧。avplayer还具有一个自定义的“全屏”按钮作为叠加层添加,例如youtube应用程序播放器。如何实现该功能,以便当应用程序处于纵向模式且用户单击全屏按钮时,视频将旋转至全屏但处于横向模式?我尝试使用transform,但它部分起作用,因为当处于全屏模式时,如果用户将设备切换为纵向模式;avplayer框架突然改变。我希望它能像youtube应用一样工作,即在全屏模式下,即使用户旋转设备,它也应保持不变。全屏关闭时,仅应恢复原始大小。由于应用程序的设计,我不想使用avplayerviewcontroller。在此先感谢您的帮助。

iphone video ios avplayer avplayerlayer

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

在 AVPlayerViewController 中将视频旋转 90 度 - 可能吗?

我不知道如何将视频旋转 90 度AVPlayerViewController,有人知道如何做到这一点吗?我不确定如何AVPlayerLayer像往常一样访问。

ios avplayer avplayerlayer avkit avplayerviewcontroller

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

使用AutoLayout设置AVPlayer / AVPlayerLayer大小?

我正在尝试使用AutoLayout设置在视图中显示的视频的大小/帧。但是我不知道该怎么做。这是我认为的代码:

import UIKit
import AVKit

class VideoMeetingView: UIView {

    lazy var playerLayer: AVPlayerLayer = {
        let layer = AVPlayerLayer()
        return layer
    }()

    private lazy var videoView: UIView = {
        let view = UIView()
        view.translatesAutoresizingMaskIntoConstraints = false
        view.backgroundColor = .blue
        return view
    }()

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = #colorLiteral(red: 0.5725490451, green: 0, blue: 0.2313725501, alpha: 1)
        self.addSubviewsAndConstraints()

        playerLayer.frame = videoView.bounds
        videoView.layer.addSublayer(playerLayer)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    private func addSubviewsAndConstraints() {
        self.addSubview(videoView) …
Run Code Online (Sandbox Code Playgroud)

ios avplayer avplayerlayer swift

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

如何使用AVPlayer镜像(翻转)播放视频?

我想使用 AVPlayer 镜像(翻转)视频播放。喜欢:MirrorTube:- https://chrome.google.com/webstore/detail/mirrortube/olomckflnlligkboahmaihmeaffjdbfm/lated?hl=en

我想实现相同的功能。

我尝试更改 CGAffineTransform 但效果不一样。

提前致谢!

mirroring avplayer avplayerlayer swift

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

AVPlayer未显示FullScreen

我正在播放由AVCapture录制的录制视频.我将视频URL保存在名为outputFileURL的字符串中.我尝试使用AVPlayerLayer概念播放视频.我用的代码是

AVPlayer *avPlayerq = [AVPlayer playerWithURL:outputFileURL];
avPlayerq.actionAtItemEnd = AVPlayerActionAtItemEndNone;
AVPlayerLayer *videoLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayerq];
videoLayer.frame= self.view.bounds;

[self.view.layer addSublayer:videoLayer];
[avPlayerq play];
Run Code Online (Sandbox Code Playgroud)

但我得到的视频不是全屏.任何人都可以帮我解决?

objective-c ios avplayer avplayerlayer

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

使AVPlayer全屏不带信箱

我正试图在登录屏幕上显示视频,如Spotify等应用程序所示.

我在做什么

要做到这一点,我正在使用AVPlayer:

self.videoPlayer = AVPlayer(playerItem: item)
self.videoView.player = self.videoPlayer
self.videoPlayer.play()
Run Code Online (Sandbox Code Playgroud)

该videoView是描述一个自定义UIView类在这里.

我将AVLayer的videoGravity设置为AVLayerVideoGravityResizeAspectFill:

self.videoView.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
Run Code Online (Sandbox Code Playgroud)

问题

但是,当我尝试填写视图边界时,我的视频仍然是letterboxed:

在此输入图像描述

我想要的是

我想要的是让视频填满整个边界,没有任何黑条.我不在乎视频的一部分是否被剪裁:

在此输入图像描述

附加信息

当我查看已弃用的MPMoviePlayerController的缩放模式属性时,我找到了aspectFill属性的以下描述:

均匀缩放影片,直到影片填充视图的可见边界.剪切两个尺寸中较大尺寸边缘的内容,使另一个尺寸精确地适合视图.保留电影的宽高比

从这个描述来看,这是我想要的确切行为.但是,正如已经说明的那样,我的视频得到了信箱.我做错了还是Apple停止支持这种缩放?如果我不关心被剪辑的部分视频,我是否必须自己实施此缩放?

感谢任何帮助,谢谢.

ios avplayer avplayerlayer

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

设置AVPlayer视频帧圆角

有人知道如何使用 AVPlayer 设置视频帧的圆角吗?我正在尝试这样做:

- (void)loadVideoWithPlayer:(AVPlayer*)playerVideo
{    
    dispatch_async(dispatch_get_main_queue(), ^{

        AVPlayerLayer *avLayer = [AVPlayerLayer playerLayerWithPlayer: playerVideo];
        [avLayer setCornerRadius:20];
        [avLayer setMasksToBounds:YES];

        [self.playerViewController setPlayer:playerVideo];

        [self insertSubview:self.playerViewController.view belowSubview:self.interactView];

        [self.playerViewController.player play];
    });
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我无法设置圆角,AVPlayer.playerViewController.view因为视频帧可能不同。

cornerradius avplayer avplayerlayer

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

如何知道要删除哪个子层?

我有以下代码行,旨在防止子层显示在另一个帖子内容上的问题。在用户退出帖子时调用该行被激发的方法。

newBaseP3FolderLayer.layer.sublayers?.remove(at: 1)
Run Code Online (Sandbox Code Playgroud)

但现在,我认为由于这段代码,在某些情况下,另一个视频会突然覆盖所有其他图像。

我注意到,只有当子层数为 14 时才会发生这种情况。(对于上面的数字也可能如此)在离开帖子时打印子层数时,我注意到代码运行良好(对于像 10 或 11 这样的值和12)直到子视图数达到14。

我怎样才能解决这个问题?

ios avplayerlayer swift

0
推荐指数
1
解决办法
573
查看次数