【问题标题】:How to play video in ios6ios6如何播放视频
【发布时间】:2012-10-23 23:30:23
【问题描述】:

我很困惑:

MPMoviePlayerViewController 和 MPMoviePlayerController

在 ios6 本地播放视频的最佳方式是什么?

这是我的代码

NSURL * url = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: @ "17" OfType: @ "mov"]];

     MoviePlayer = [[MPMoviePlayerViewController alloc]
                     initWithContentURL: url];
     [self presentMoviePlayerViewControllerAnimated: MoviePlayer];
     [moviePlayer.moviePlayer play];
     [[NSNotificationCenter defaultCenter] addObserver: self selector: @ selector (moviePlayerPlaybackStateChanged :) name: MPMoviePlayerPlaybackStateDidChangeNotification object: nil];
}


-(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification {


}

【问题讨论】:

    标签: ios xcode video ios6


    【解决方案1】:

    MPMoviePlayerViewController 用于播放全屏视频,主要用于手机上。

    MPMoviePlayerController 可用于嵌入视频,即不能在任何 iPad 上全屏显示。您需要在情节提要中将一个空视图拉到您的场景中,并为其提供所需的大小。然后,在代码中,将电影播放器​​放在该子视图中。您的代码的第一部分应该在 viewDidLoad;

    //movieplayer initialization
    NSString *path = [[NSBundle mainBundle] pathForResource:@"videoName" ofType:@"m4v"];
    NSURL *videoURL = [NSURL fileURLWithPath:path];
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
    [moviePlayer setControlStyle:MPMovieControlStyleNone]; // for custom controls, for default controls you can leave this line out.
    

    这部分进入 viewWillAppear;

    moviePlayer.repeatMode = MPMovieRepeatModeOne; // for looping
    [moviePlayer.view setFrame: self.videoSuper.bounds]; 
    [self.videoSuper addSubview: moviePlayer.view];
    [moviePlayer prepareToPlay];
    [moviePlayer play];
    

    其中 videoSuper 是故事板中添加的子视图。一定要正确连接;

    //in .h
    @property (weak, nonatomic) IBOutlet UIView *videoSuper;
    

    【讨论】:

    • 我试过这样做,但由于某种原因它对我不起作用。我创建了一个单视图项目,带有 xib 但没有情节提要。添加了一个 UIView 并将其与文件所有者连接。我看到的只是一个白屏,没有声音。关于我可能做错了什么的任何帮助或建议?今天有没有更好的方式来播放我不知道的视频??
    • 您是否命名了连接到视图的插座?在我对命名约定了解很多之前,我写了这篇文章。我所说的 videoSuper 应该被称为 videoView 或类似的东西,它应该是你的 h 文件中的一个 IBOutlet,它连接到你的 NIB 中的视图。 (我使用情节提要,所以细节由您决定。)在情节提要中,您可以右键单击情节提要中的视图并拖动到声明属性的区域中的头文件,然后弹出窗口将让您有机会命名它。将其命名为 videoView,然后您的 Controller 将拥有一个您可以在代码中引用的属性。
    • [self.videoView addSubview: moviePlayer.view];
    • @property (weak, nonatomic) IBOutlet UIView *videoView;
    • 为什么是videoSuper?不能直接将moviePlayer的view添加到self.view中吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 2014-05-10
    相关资源
    最近更新 更多