1

これらの手順に従ってライブ HTTP ストリーミング (HLS) をブロードキャストしている Flash Media Server (FMS) を実行する Amazon AWS でインスタンスをセットアップしたので、iPhone に適したストリーミング形式を使用してストリーミングしていることがわかります。

さらに、同じ手順を使用して、サーバーが稼働していることを確認し、HDS ストリーム (フラッシュ デバイスの HTTP ダイナミック ストリーム) を読み取るようにフラッシュ クライアントを正常にセットアップしました。

私はストリームを再生するためにこのiPhoneクライアントコードを書きました(ローカルビデオファイルで動作させるチュートリアルから盗まれました..私のためにも機能しました):

@implementation BigBuckBunnyViewController

-(IBAction)playMovie:(id)sender
{
    NSURL *streamURL = [NSURL URLWithString:@"http://dstvrton8xbej.cloudfront.net/hls-live/livepkgr/_definst_/liveevent/livestream.m3u8"];
    MPMoviePlayerController *moviePlayerContoller = [[MPMoviePlayerController alloc] initWithContentURL:streamURL];

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

    [self.view addSubview:moviePlayerContoller.view];
    moviePlayerContoller.fullscreen = YES;
    [moviePlayerContoller play];

}

- (void)moviePlaybackComplete: (NSNotification *)notification
{
    MPMoviePlayerController *moviePlayerController = [notification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:moviePlayerController];

    [moviePlayerController.view removeFromSuperview];
    [moviePlayerController release];

}

しかし、コードをiPadにコンパイルすると、次のエラーメッセージが表示されます。

2012-07-13 17:45:20.513 BigBuckBunny[3714:607] -[BigBuckBunnyViewController moviePlaybackComplete]: unrecognized selector sent to instance 0x21050080
2012-07-13 17:45:20.524 BigBuckBunny[3714:607] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[BigBuckBunnyViewController moviePlaybackComplete]: unrecognized selector sent to instance 0x21050080'        

Macのドキュメントから NSInvalidArgumentExceptionは、非 nil オブジェクトが必要な nil ポインタなど、無効な引数をメソッドに渡すと発生します。アイデアはありますか?

4

1 に答える 1

0

解決策は簡単です..基本的には構文エラーです(笑)..movi​​ePlaybackCompleteの後に「:」を追加します

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(moviePlaybackComplete:) 
                                             name:MPMoviePlayerPlaybackDidFinishNotification   
                                           object:moviePlayerContoller];
于 2012-07-16T14:13:20.207 に答える