私のアプリでは、MPMoviePlayerController
作成したインスタンスはブラックボックスとして始まり、次のようになります(ビデオが黒で始まり、フェードインするため)。
ただし、次の例のように、サムネイル画像を使用して、このようなよりユーザーフレンドリーなものを想定していました。
これは私が作成したモックアップですが、カメラロールのビデオとメッセージアプリで送信されるビデオはその再生矢印を使用します。標準のiOS再生矢印を使用するには、どのクラスを実装する必要がありますか?
私のアプリでは、MPMoviePlayerController
作成したインスタンスはブラックボックスとして始まり、次のようになります(ビデオが黒で始まり、フェードインするため)。
ただし、次の例のように、サムネイル画像を使用して、このようなよりユーザーフレンドリーなものを想定していました。
これは私が作成したモックアップですが、カメラロールのビデオとメッセージアプリで送信されるビデオはその再生矢印を使用します。標準のiOS再生矢印を使用するには、どのクラスを実装する必要がありますか?
thumbnailImageAtTime:timeOption:
これは、の方法のように見えMPMoviePlayerController
ます。サムネイルを取得する時間を渡し、その画像を使用してUIImageView
動画の上にを表示する必要があります。
サムネイルを作成したら、を作成して画像をサムネイルに設定し、をに設定しUIImageView
ていることを確認します。この画像ビューのフレームは、ムービープレーヤーを覆うように設定してください。userInteractionsEnabled
YES
UITapGestureRecognizer
これで、メソッドをトリガーするその画像ビュー上にを作成できます。play
次に、このメソッドはオブジェクトのメソッドを呼び出しMPMoviePlayerController
ます。
-(void)viewDidLoad{
[...]
UIImage *thumbnail = [moviePlayer thumbnailImageAtTime:5.0
timeOption:MPMovieTimeOptionNearestKeyFrame];
UIImageView *iv = [[UIImageView alloc] initWithImage:thumbnail];
iv.userInteractionEnabled = YES;
iv.frame = moviePlayer.frame;
[self.view addSubview:iv];
[iv release];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
tap.numberOfTapsRequired = 1;
[iv addGestureRecognizer:tap];
[tap release];
[...]
}
- (void)handleTap:(UITapGestureRecognizer *)gesture{
iv.hidden = YES;
[moviePlayer play];
}
再生ボタンが必要な場合は、Photoshopで再生ボタンを作成し、これをサムネイル画像ビューの上に追加し、ジェスチャー認識機能をその画像ビューに接続して、ビデオの再生を開始するときに両方の画像ビューを非表示にしてください。
UIButton
それ以外の場合は、画像を再生画像に設定して使用できます。そうすれば、はまったく必要ありませんUIGestureRecognizer
。
この矢印<video>
は、WebビューのHTML5タグにビデオを埋め込むことで取得できます。
実際の実装については、次のような回答を参照してください。HTML5を使用してUIWebViewで埋め込みビデオを再生します。
UIButtonを使用するのはどうですか?素敵な背景画像があり、それをクリックして、ムービープレーヤーの後ろに移動したり、ボタンを削除したりすることもできます。コードでも簡単に追加できます