3

私は何かばかげたことを見逃していると確信していますが、私は一日中これにこだわっています。どんな助けでも大歓迎です。iPadアプリにビデオを埋め込もうとしていました。私はxcode 4.2.5を使用しています。ここで見つけたチュートリアルに従っています:埋め込まれたiPadビデオ

私が知る限り、指示には正確に従いました。何度かやり直しました。以前はメモリ エラーが発生していましたが、今回はまったくエラーが発生しません。映像も音声もありません。私が使用しなかったチュートリアルの唯一の部分は、iPad の回転に関する最後の部分でした。

xcode 4.5.2 では作成されないため、私が正確に理解できなかった唯一の部分は、リソース フォルダーにビデオを配置することでした。そのため、MOVIE.MOV を、.h、.m、および .xib ファイルが自動的に配置されたのと同じディレクトリに配置しました。ビデオをテストしたところ、単独で動作します。

コードは次のとおりです。ヘルプやガイダンスをいただければ幸いです。こんなNOOBでごめんなさい。

ヘッダー:

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController : UIViewController{

}
-(IBAction) playMovie;
@end

メイン:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
-(void)playMovie
{
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"MOVIE" ofType:@"MOV"]];
    MPMoviePlayerController *moviePlayer =
    [[MPMoviePlayerController alloc]
    initWithContentURL:url];

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlayBackDidFinish:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:moviePlayer];

    moviePlayer.controlStyle = MPMovieControlStyleDefault;
    moviePlayer.shouldAutoplay = YES;
    [self.view addSubview:moviePlayer.view];
    [moviePlayer setFullscreen:YES animated:YES];
}
- (void) moviePlayBackDidFinish:(NSNotification*)notification {

    MPMoviePlayerController *moviePlayer = [notification object];

    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:MPMoviePlayerPlaybackDidFinishNotification
                                              object:moviePlayer];

    if ([moviePlayer
         respondsToSelector:@selector(setFullscreen:animated:)])
    {
        [moviePlayer.view removeFromSuperview];
    }    
    [moviePlayer release];
}

助けてくれてどうもありがとう。

4

1 に答える 1

3

あなたがチェックできるいくつかのこと:

  • 動画をXcodeのプロジェクトにドラッグした際に、「項目をコピー先グループのフォルダにコピーする」にチェックを入れましたか?
  • アイテムは「バンドル リソースのコピー」ビルド フェーズで表示されますか? (プロジェクトをクリックし、ターゲットを選択して、Xcode の [ビルド フェーズ] タブを確認します)
  • パス文字列は、iOS では大文字と小文字が区別されます。あなたのムービーは、ファイル名が「MOVIE」で、拡張子が「MOV」(すべて大文字)になっていますか?
于 2013-01-16T22:15:13.753 に答える