尝试使用MPMoviePlayerController播放视频,只获取音频

use*_*567 2 cocoa-touch objective-c mpmovieplayercontroller ios

我想在我的iPhone应用程序中播放视频.我用过这段代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *movieUrl = [NSURL fileURLWithPath:
                       [[NSBundle mainBundle] pathForResource:@"Myvideo" 
                                                       ofType:@"mp4"]];

    //create a new instance of MPMoviePlayerController
    MPMoviePlayerController* myMovie=[[MPMoviePlayerController alloc] 
                                      initWithContentURL:movieUrl];

    //disable scaling of our movie
    myMovie.scalingMode = MPMovieScalingModeNone;

    //don't show any controls
   // myMovie.movieControlMode = MPMovieControlModeHidden;

    //you can specify at which time the movie should 
    //start playing (default is 0.0)
    myMovie.initialPlaybackTime = 2.0;

    //register a callback method which will be called
    //after the movie finished
    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(movieFinished:) 
                                                 name:MPMoviePlayerPlaybackDidFinishNotification 
                                               object:myMovie]; 

    //start the movie (asynchronous method)
    [myMovie play];
    // Do any additional setup after loading the view from its nib.
}
Run Code Online (Sandbox Code Playgroud)

只有声音适用于此代码.有谁可以帮助我吗?

MBy*_*ByD 10

您需要为电影分配一个帧并将其添加到视图中.看到这里.

所以你可以添加:

[myMoview.view setFrame: self.view.bounds];  // player's frame must match parent's
[self.view addSubview:myMovie.view];
Run Code Online (Sandbox Code Playgroud)


Jos*_*ell 5

Apple技术问答1240:

MPMoviePlayerController播放电影音频但不播放视频

问: 我能够MPMoviePlayerController在iOS 3.1.3上成功播放电影.当我在iPad和iPhone上使用iOS 4运行相同的代码时,我可以听到电影音频,但视频不再显示.这是怎么回事?

答:从iPhone iOS 3.2开始,调用该-play:方法仍然会开始播放电影,但不能确保电影可见.要显示影片,必须从MPMoviePlayerController对象获取新的视图属性,并将该视图添加到视图层次结构中.这是一段代码片段:

清单1 如何将MPMoviePlayerController视图属性添加到视图层次结构以播放影片.

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

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[[player view] setFrame:[myView bounds]]; // size to fit parent view exactly
[myView addSubview:[player view]];
[player play];
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅使用Media Player Framework的重要移植提示MPMoviePlayerController类参考.