相关疑难解决方法(0)

目标C:在哪里删除NSNotification的观察者?

我有一个客观的C类.在其中,我创建了一个init方法并在其中设置了NSNotification

//Set up NSNotification
[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(getData)
                                             name:@"Answer Submitted"
                                           object:nil];
Run Code Online (Sandbox Code Playgroud)

我在哪里设置[[NSNotificationCenter defaultCenter] removeObserver:self]这门课程?我知道,对于a UIViewController,我可以将它添加到viewDidUnload方法中如果我刚刚创建了一个目标c类,需要做什么?

objective-c nsnotifications ios

101
推荐指数
9
解决办法
8万
查看次数

你如何在Swift中循环AVPlayer?

简单的问题我似乎无法找到答案的原因.

你如何在Swift中循环AVPlayer?

numberOfLoops = -1仅适用于AVAudioPlayer

我确实需要它循环没有任何延迟/黑色闪光等.这就是为什么我没有使用MPMoviePlayerViewController.

谢谢你的帮助.

码:

    let url_1 = NSURL.fileURLWithPath(outputFilePath_1)

    let asset_1 = AVAsset.assetWithURL(url_1) as? AVAsset
    let playerItem_1 = AVPlayerItem(asset: asset_1)

    let player_1 = AVPlayer(playerItem: self.playerItem_1)

    let playerLayer_1 = AVPlayerLayer(player: self.player_1)

    playerLayer_1!.frame = self.view.frame

    self.view.layer.addSublayer(self.playerLayer_1)

    player_1!.play()
Run Code Online (Sandbox Code Playgroud)

ios swift

63
推荐指数
8
解决办法
4万
查看次数

iPhone从一个视频平滑过渡到另一个视频

我必须弄清楚从一个视频过渡到下一个视频的最佳方式

基本理念:一个例子就是有一个人走路的视频......用户点击视频,并且无法过渡到正在运行的人的视频(简化示例)

我的第一个想法是创建2个电影播放器​​并使用2个视图元素之间的过渡.但电影播放器​​不支持这一点.

停止当前视频,加载新内​​容,然后启动它是一个解决方案,但不是很优雅.我们正在为我们的销售代表制作一个互动销售工具,我们希望这看起来尽可能专业.

当前的想法:如果有一些AVPlayer的示例代码,似乎我可以使用AVVideoComposition在视频之间切换?但目前似乎没有关于如何发生这种情况的详细信息.

可能的CLUE:我认为这很简单,因为我买了一款名为Live Cams HD的应用程序,可以同时显示16种不同的视频.

有任何想法吗?提前致谢!

iphone video

10
推荐指数
2
解决办法
6323
查看次数

无缝循环AVPlayer

之前已经讨论过如何循环AVPlayer播放视频项目,但没有"解决方案"足够无缝以提供无延迟的视频循环.

我正在开发一个tvOS应用程序,它的一个视图背景中有一个高质量的10秒"风景"剪辑,只需重新启动它的AVPlayer"标准"方式(订阅NSNotification捕获它)太疯狂了注意并减损用户体验.

似乎实现真正无缝循环的唯一方法是在较低级别(在OpenGL中)手动管理帧...

尽管我已尽最大努力阅读此内容,并且作为操纵视频流水线的新手,我还没有达到一个易于理解的解决方案.

我知道存在外部库可以更容易地执行此行为; 最值得注意的是GPUImage.但是,我正在开发的应用程序是针对tvOS的,因此很难使用相当多的第三方iOS库,包括GPUImage.我遇到的另一个库是AVAnimator,它为轻量级动画视频提供了强大的功能,但不能用于.H264中编码的源素材的密集,高质量视频剪辑.

到目前为止,我最接近的是Apple自己的AVCustomEdit源代码,但这主要涉及静态生成"过渡",虽然无缝,但过于复杂,我无法辨别如何使其执行简单的循环功能.

如果任何人都可以在AVPlayer较低级别操作,即使用图像处理/缓冲区(或者不依赖于外部库的iOS开发),我会非常有兴趣知道如何开始.

video opengl-es avfoundation ios tvos

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

在iOS中平滑视频循环

任何人都可以建议一种方法,通过它您可以在iOS中实现视频剪辑的完全平滑和无缝循环?我尝试了两种方法,当视频循环时,这两种方法都会产生一个小暂停

1)AVPlayerLayer与playerItemDidReachEnd通知设置关闭seekToTime:kCMTimeZero

我更喜欢使用AVPlayerLayer(出于其他原因),但是这种方法会在循环之间产生明显的暂停.

2)带有setRepeatMode的MPMoviePlayerController:MPMovieRepeatModeOne

这导致较小的暂停,但仍然不完美.

我不知道从哪里开始.任何人都可以建议一个灵魂?

movie mpmovieplayercontroller ios avplayer ios5

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

在AVFoundation AVSampleBufferDisplayLayer中循环播放视频

我正在尝试在AVSampleBufferDisplayLayer上循环播放视频。我可以让它播放一次,没有问题。但是,当我尝试循环播放时,它不会继续播放。

根据对AVFoundation的再现视频循环的答案,没有办法倒带AVAssetReader,所以我重新创建了它。(我确实看到了用AVFoundation AVPlayer循环播放视频的答案吗?但是AVPlayer具有更多功能。我正在读取文件,但仍希望AVSampleBufferDisplayLayer。)

一种假设是,我需要停止某些H264标头,但是我不知道这是否有帮助(以及如何帮助)。另一个是它与CMTimebase有关,但是我尝试了几件事都没有用。

以下代码基于Apple的WWDC关于直接访问视频编码的演讲:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *filepath = [[NSBundle mainBundle] pathForResource:@"sample-mp4" ofType:@"mp4"];
    NSURL *fileURL = [NSURL fileURLWithPath:filepath];
    AVAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];

    UIView *view = self.view;

    self.videoLayer = [[AVSampleBufferDisplayLayer alloc] init];
    self.videoLayer.bounds = view.bounds;
    self.videoLayer.position = CGPointMake(CGRectGetMidX(view.bounds), CGRectGetMidY(view.bounds));
    self.videoLayer.videoGravity = AVLayerVideoGravityResizeAspect;
    self.videoLayer.backgroundColor = [[UIColor greenColor] CGColor];

    CMTimebaseRef controlTimebase;
    CMTimebaseCreateWithMasterClock( CFAllocatorGetDefault(), CMClockGetHostTimeClock(), &controlTimebase );

    self.videoLayer.controlTimebase = controlTimebase;
    CMTimebaseSetTime(self.videoLayer.controlTimebase, CMTimeMake(5, 1));
    CMTimebaseSetRate(self.videoLayer.controlTimebase, 1.0);

    [[view layer] addSublayer:_videoLayer];

    dispatch_queue_t assetQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, …
Run Code Online (Sandbox Code Playgroud)

video objective-c avfoundation ios avplayer

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

在精灵套件中永远播放视频

我在介绍场景中播放视频时遇到问题.我已将我的视频添加到场景中并且播放正常.我只是希望它一次又一次地重复.是否有任何方法可以将此视频设置为在结束后自动播放?

这就是我添加视频的方式:

SKVideoNode *videoNode = [SKVideoNode videoNodeWithVideoFileNamed:@"game1.m4v"];
videoNode.position = CGPointMake(150, 180);
videoNode.size = CGSizeMake(150, 150);
[self addChild:videoNode];
[videoNode play];
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

sprite-kit skvideonode

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

AVPlayerLooper不会循环播放多个视频

我用了AVPlayerView不停播放4个视频AVPlayerLooper.

问题是:AVPlayerView只显示一个循环视频.但我需要播放一个序列(4个视频).

如何AVPlayerLooper播放所有4个视频并在此之后循环播放?

import Cocoa
import AVKit
import AVFoundation

class ViewController: NSViewController {

    @IBOutlet weak var viewOne: AVPlayerView!
    var playerLooper: AVPlayerLooper? = nil

    override func viewDidLoad() {
        super.viewDidLoad()

        let videos = (1...4).map { _ in
            Bundle.main.urls(forResourcesWithExtension: "mov", subdirectory: nil)![Int(arc4random_uniform(UInt32(4)))]
        }

        viewOne.player = AVQueuePlayer(url: videos[Int(arc4random_uniform(UInt32(4)))])
        let item = AVPlayerItem(url: videos[Int(arc4random_uniform(UInt32(4)))])
        playerLooper = AVPlayerLooper(player: viewOne.player as! AVQueuePlayer, templateItem: item)
        viewOne.player?.actionAtItemEnd = .advance
        viewOne.controlsStyle = .none

        NotificationCenter.default.addObserver(self, selector: Selector(("loopSequence")), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: viewOne.player?.currentItem)

        func loopSequence() …
Run Code Online (Sandbox Code Playgroud)

macos loops avfoundation swift avkit

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

Xamarin iOS AVPlayer - 如何使用通知结束循环视频?

如何在Xamarin iOS下使用AVPlayer循环播放视频?ObjectiveC解决方案建议使用可观察的通知.目前尚不清楚如何使用C#语法或AVPlayer的Xamarin API执行此操作.

您可以在此处查看ObjectiveC问题和答案:使用AVFoundation AVPlayer循环播放视频?

ios avplayer xamarin

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

如何使用playerViewController快速使视频循环播放?

我正在尝试在TVOS的Swift上使用playerViewController循环播放视频。我的视频播放正常,但是我想循环播放视频。到目前为止,这是我的代码:

override func viewDidAppear(_ animated: Bool) {
    let videoURL = URL(string: "https://url-to-video.com/video.mp4")
    let player = AVPlayer(url: videoURL!)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player        self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。谢谢

video xcode swift avplayerviewcontroller tvos

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