1

アプリ用のビデオ プレーヤー モジュールを作成しています。

これは私の.hファイルです:

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

@interface SpanishViewController : UIViewController
- (IBAction)Video1Button:(id)sender;

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;


@end

これは、.m ファイルのボタンによって実行されるイベントのコードです。

- (IBAction)Video1Button:(id)sender {

    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"01" ofType:@"mp4"];
    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
    MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:moviePlayerController];

    [self.view addSubview:moviePlayerController.view];
    moviePlayerController.fullscreen = YES;

    [moviePlayerController play];
}

規格に従って mp4 でエンコードされたビデオで、iOS で動作します。結果は~こちら

ビデオが始まらない、「完了」ボタンが機能しない..何が悪かったのか理解できません。私を助けてください。

4

2 に答える 2

1

はい、問題は、グローバルプロパティを使用する代わりに

@property (nonatomic, strong) MPMoviePlayerController *moviePlayer;

- (IBAction)Video1Button:(id)sender; で MPMoviePlayerController を再宣言しました。方法。

そのため、moviePlayer の寿命はVideo1Buttonメソッドの終了で終了します。

正しい方法、

- (IBAction)Video1Button:(id)sender {

    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"01" ofType:@"mp4"];
    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
    _moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:self.moviePlayerController];

    [self.view addSubview:_moviePlayerController.view];
    _moviePlayerController.fullscreen = YES;

    [_moviePlayerController play];
}
于 2013-05-01T04:08:51.273 に答える
0

video1Button メソッドを次のように変更します。

- (IBAction)Video1Button:(id)sender {

    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"01" ofType:@"mp4"];
    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
    self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlaybackComplete:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:self.moviePlayerController];

    [self.view addSubview:self.moviePlayerController.view];
    self.moviePlayerController.fullscreen = YES;

    [self.moviePlayerController play];
}
于 2013-05-01T04:21:44.803 に答える