English 中文(简体)
AVPlayer Layer and AVPlayer
原标题:AVPlayerLayer and AVPlayer

我用<代码>AVPlayer Layer<>/code>和AVPlayer在座打上录像机。

在选择新录像时,采用这种方法:

//this to remove the current video
    if (avPlayerLayer) {
            [[NSNotificationCenter defaultCenter] removeObserver:self name:AVPlayerItemDidPlayToEndTimeNotification object:[audioPlayer currentItem]];
            [avPlayerLayer.player pause];
            [avPlayerLayer removeFromSuperlayer];
            avPlayerLayer = nil;
    }

//and this is to add a new one
    audioPlayer = [[AVPlayer alloc]initWithURL:[NSURL fileURLWithPath:fileName]];
    avPlayerLayer = [[AVPlayerLayer playerLayerWithPlayer:audioPlayer] retain];
    [avPlayerLayer setFrame:self.view.bounds];

    CGRect frame = avPlayerLayer.frame;
    [avPlayerLayer setFrame:CGRectMake(frame.origin.x, frame.origin.y - 30, frame.size.width, frame.size.height)];

    [[self.view layer] addSublayer:avPlayerLayer];

    [audioPlayer play];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(finishPlayingSong)
                                                     name:AVPlayerItemDidPlayToEndTimeNotification
                                                   object:[audioPlayer currentItem]];
    [audioPlayer release];

现在,在我使用这种方法时,有些时候,该装置不开始拍摄录像(其发生是同步的,而不是在同一录像上)。 为什么会发生? 如何处置?

Edit

我注意到,这发生在我玩五歌之后。

最佳回答

你的记忆有泄露。 每次创建<代码>AVPlayer>,alloc: init:,并将其分配给audioPlayer。 这使它保留了1项。 接着,你创建了“AVPlayer Layer,重新编号。

后来,你发布了<代码>avPlayer Layer,其中将保留在<条码>上,但该编码从来不回落到零,因此从来不会再分配交易。

Leaks不好,但你也重新陷入另一个问题。 https://stackoverflow.com/a/9933853/199163。 最多可提供4个录音/录像带。 当你创建第五个管道时,它无法 gr碎一条管道,因此, play落失败。

为了解决你的问题,纠正记忆的泄漏。

audioPlayer = [AVPlayer playerWithURL:[NSURL fileURLWithPath:fileName]];

利用playerWithURL: 静态工厂构造者将默示履行autorelease:, 减少该物体的留存量并避免该泄漏。

问题回答

确实没有理由制造新的AVPlayer和AVPlayer Layer,只是为了改变投入。 你们真正需要的是一个新的AVPlayerItem。 将其交给目前的AVPlayer,并继续使用你现有的AVPlayer Layer。

一般来说,为了定制你的MMPMovie角色,最好与AVPlayer Layer接洽。

通过利用这个定制的参与者,你可以像你一样,对角色控制(作用/暂停、退学、上班和数量等)进行定制。





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签