0

ボタンクリック(ネイティブビデオ)にビデオを追加しようとしていますが、コードは完璧で、コンパイルして正常に実行されますが、ビデオをネイティブに再生するためのボタンをクリックすると...「スレッド1」が表示されます: シグナル SIGBART" ??? どうすればこれを修正できますか?

私は必要に応じてすべてに従い、ビデオをサポートファイルにインポートし、.m でファイル名と同じ名前を付けることを確認しました。

ブレークポイントの例外を追加しようとしましたが、機能しません

これが.hのコードです

@interface ViewController5 : UIViewController {

}

-(IBAction)play;

@end

これが.mのコードです

@implementation ViewController5

-(IBAction)play {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"test video" ofType:@"mp4"]];
MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
                                                 initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:playercontroller];
playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[playercontroller.moviePlayer play];
playercontroller = nil;
}

@end

そして、ここに私が得る「緑」のハイライト信号があります

int main(int argc, char *argv[])
{
@autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
4

1 に答える 1

0

ARC を使用している場合は、MPMoviePlayerViewControllerインスタンスへの参照を保持して、playメソッドが返されたときに割り当てが解除されないようにする必要がありますnil

// ViewController5.h
@interface ViewController5 : UIViewController {
    MPMoviePlayerViewController *playercontroller;
}
- (IBAction)play;
@end

// ViewController5.m
@implementation ViewController5
- (IBAction)play {
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test video" ofType:@"mp4"]];
    playercontroller = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    [self presentMoviePlayerViewControllerAnimated:playercontroller];
    playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
    [playercontroller.moviePlayer play];
}
@end
于 2013-07-13T20:48:14.453 に答える