iphone ios MPMoviePlayerController在ios 6 模拟器中无法播放


在ios 6的模拟器和真机中,使用MPMoviePlayerController无法播放视频,提示如下:


2012-08-23 15:36:45.559 VideoTest1[11398:c07] [MPAVController] Autoplay: Disabling autoplay for pause
2012-08-23 15:36:45.560 VideoTest1[11398:c07] [MPAVController] Autoplay: Disabling autoplay
2012-08-23 15:37:18.186 VideoTest1[11398:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 1, on player: 0)

找遍网络,有几个说法如下

1。stackoverflow中有人说加prepareToPlay,就搞定了。我试了试不行。还有说加MPMoviePlayerPlaybackDidFinishNotification就ok。实际也不行

            self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
            [self.moviePlayer prepareToPlay];
            self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
            [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(videoFinishedCallback:)
                                                         name:MPMoviePlayerPlaybackDidFinishNotification
                                                       object:self.moviePlayer];
            
            
            [self.moviePlayer play];

2。第二种方法,就是把MPMoviePlayerController加入当前view中也是不行的。

            self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
            [self.moviePlayer prepareToPlay];
            self.moviePlayer.view.frame = self.view.frame;
            self.moviePlayer.shouldAutoplay=YES;
            self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
            self.moviePlayer.controlStyle = MPMovieControlStyleNone;
            [self.moviePlayer setFullscreen:YES animated:YES];
            [self.view addSubview:moviePlayer.view];
            [self.moviePlayer play];


3。后来在某个问答中,有人说是因为iosdeARC导致的。

实际就是这个原因。我拿成员变量(retain)类型,接了一下MPMoviePlayerController,注意以下代码

self.moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];

实际上alloc的时候我没加autorelease,后面也没有加release。这时retaincount应该是2。

这样就能播放了。


4。后来又测试了一番,使用一个独立的viewcontroller来放MPMoviePlayerController,播放了两个地址,发现必须要用正确的播放地址才行。否则会有问题。


通过以上测试,我还是不太清楚为什么?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值