【问题标题】:MPMoviePlayerController stopped working in 3.1.2MPMoviePlayerController 在 3.1.2 中停止工作
【发布时间】:2011-04-19 01:47:22
【问题描述】:

我正在使用 MPMoviePlayerController 为旧设备 (3.1.2) 播放实时流媒体 m3u8 视频。直到今天早上,这一切都很好。我尝试更改 scalingMode 来解决另一个问题,但现在播放器根本无法工作。我回到了旧的备份,但它们也不起作用。

在调试时,控制进入 [mMPPlayer 播放] 并且永远不会返回。这也会锁定我的应用程序。

MPMoviePlayerController 发生了什么变化,还是我在 XCode 中破坏了某些东西?

我的应用程序计划今天开始投入生产,所以我真的陷入了困境,在这里。 :(

这是我收到的警告:

警告:MPMoviePlayerController 可能不支持 m3u8 类型的文件

这是我的代码:

MyViewController.h:

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>

@interface WatchNowViewController : UIViewController {
    MPMoviePlayerController *mMPPlayer;
}
@property (nonatomic, retain)           MPMoviePlayerController *mMPPlayer;

@end

MyViewController.m:

        mMPPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.mysite.com/myVideo.m3u8"]];
        mMPPlayer.scalingMode=MPMovieScalingModeFill;
        mMPPlayer.backgroundColor=[UIColor blackColor];
        [mMPPlayer play];
NSLog("Control never returns to here");

【问题讨论】:

  • 你升级了 xcode 或 iPhone sdk 了吗?还是流文件有什么变化?
  • 该警告是正常的,可以忽略。尝试另一个流 - 例如苹果的 blip-blop 示例。也许更改发生在您的服务器上,而不是您的客户端上。
  • 谢谢,直到。您有指向 blip-blop 示例的链接吗?我很难找到它。'

标签: iphone video streaming mpmovieplayercontroller


【解决方案1】:

也发生在我们身上。不知道出了什么问题。加密流刚刚在 3.2 中停止播放。在 iPad safari 中尝试 m3u8 url 并检查它是否在那里播放。如果它也不能在 iPad Safari 中播放,请尝试未加密的流。根据我的经验,未加密的流在 3.2 中播放没有问题。

【讨论】:

  • 你们什么时候受到影响?今天?该流在 iPad 和 iPhone 4.0 中播放,但我正在使用视图控制器 (MPMoviePlayerViewController)。我只是强迫它使用 MPMoviePlayerController,我得到了声音,但没有视频。我想我在其他地方看到了一个关于必须手动为播放器添加视图的线程。我以前不必这样做,所以我忽略了那个线程。我会再找找的。​​span>
  • 发生在几天前。由于我们急于将应用程序推出,我们将其搁置,并将应用程序的部署目标设为 iOS 4.2 及更高版本。
  • 我觉得我可能不得不这样做。我在这里找到了一些有用的东西 - stackoverflow.com/questions/3099662/…。我添加了 [self.view addSubview:moviePlayer.view]; moviePlayer.view.frame = CGRectMake(50, 50, 200, 200);并且能够让它在 iPad 上运行。 (mMPPlayer.scalingMode=MPMovieScalingModeAspectFit; 会给你一个很好的横向/纵向视图)但是,这不适用于 iPhone 3.1.2。尝试制作框架或添加视图时出现 SIGABRT 错误。这就像被完全拉出来一样。
  • @user359519 视图属性在 iOS 3.2 之前不存在,因此您需要在使用它之前检查它是否存在(针对任何低于 3.2 的项目) - 请参阅 respondsToSelector:。
  • 现在可以了。我唯一改变的是我的代码签名身份。我把它改回来了,它仍然有效,所以我认为这不是问题。另一个使用相同提要的应用程序现在也在运行。 (它与我的同步中断。)我完全感到困惑,但很高兴它正在工作。我仍然从您的 cmets 中学到了很多东西。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多