これらの手順に従ってライブ 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 ポインタなど、無効な引数をメソッドに渡すと発生します。アイデアはありますか?