MPMoviePlayerViewController 重复模式不起作用?

发布于 2024-09-11 09:49:49 字数 372 浏览 0 评论 0原文

我对 MPMoviePlayerViewController 及其属性重复模式有疑问。据称,将其设置为 MPMovieRepeatModeOne 值将导致播放器重复播放。我使用以下代码循环播放视频,但它在结束后停止。

MPMoviePlayerViewController *mpViewController =[[MPMoviePlayerViewController alloc] init];
mpViewController.moviePlayer.contentURL= movieURL;
self.aPlayer=mpViewController;
self.aPlayer.moviePlayer.repeatMode=MPMovieRepeatModeOne;

I have a problem with MPMoviePlayerViewController and it's property repeatMode. It's stated that setting it to a MPMovieRepeatModeOne value will cause player to repeat playback. I use following code to play video in a loop but it just stops after the end.

MPMoviePlayerViewController *mpViewController =[[MPMoviePlayerViewController alloc] init];
mpViewController.moviePlayer.contentURL= movieURL;
self.aPlayer=mpViewController;
self.aPlayer.moviePlayer.repeatMode=MPMovieRepeatModeOne;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

肩上的翅膀 2024-09-18 09:49:49
mpViewController.repeatMode=MPMovieRepeatModeOne;

为我工作,但我没有 url 行或 self.'s

我的下一行在上面之后是 [mpViewController play];

mpViewController.repeatMode=MPMovieRepeatModeOne;

worked for me but I did not have the url line or the self.'s

My next line after the above was [mpViewController play];

音盲 2024-09-18 09:49:49

删除这一行

[self.aPlayer.movi​​ePlayer setRepeatMode:MPMovieRepeatModeOne];

并投入:

   [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayerDidChangeState:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:self.player];

并实施

- (void)moviePlayerDidChangeState:(NSNotification *)note
{


    MPMoviePlaybackState playbackState = [self.player playbackState];
    if(playbackState==MPMoviePlaybackStateStopped ||playbackState==MPMoviePlaybackStatePaused || playbackState==MPMoviePlaybackStateInterrupted)
    {
        if (note.object == self.player) {
            NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
            if (reason == MPMovieFinishReasonPlaybackEnded)
            {
                [self.player play];
            }
        }
    }
}

Remove this line

[self.aPlayer.moviePlayer setRepeatMode:MPMovieRepeatModeOne];

and put:

   [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayerDidChangeState:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:self.player];

and implement

- (void)moviePlayerDidChangeState:(NSNotification *)note
{


    MPMoviePlaybackState playbackState = [self.player playbackState];
    if(playbackState==MPMoviePlaybackStateStopped ||playbackState==MPMoviePlaybackStatePaused || playbackState==MPMoviePlaybackStateInterrupted)
    {
        if (note.object == self.player) {
            NSInteger reason = [[note.userInfo objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
            if (reason == MPMovieFinishReasonPlaybackEnded)
            {
                [self.player play];
            }
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文