2

ピッカーを使用してビデオからサムネイルを作成するのは簡単です。ただし、ピッカーで再生を押してビデオを選択すると、サムネイルが常に黒くなります。スクリーンショットを作成することを望んでいましたが、この方法ではビデオの最初の画像しか取得できず、再生されていない場合にのみ使用できます。

ビデオの任意の位置にサムネイルを作成するにはどうすればよいですか?

ここでは、ビデオが再生されていないサムネイルに使用する「通常の」コードを示します。

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {

    CGSize size = viewImage.size;
    CGFloat ratio = 0;
    if (size.width > size.height) {
        ratio = 80.0 / size.width;
    } else {
        ratio = 80.0 / size.height;
    }
    CGRect rectForthumbnail = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size.height);

    UIGraphicsBeginImageContext(rectForthumbnail.size);

    CGRect clipRect = CGRectMake(0.0, 0.0,74,74);
    [viewImage drawInRect:clipRect];
    dance.thumbnailImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

残念ながら、「再生」を押した後、作成されたサムネイルは黒くなり (ビデオ ロールと現在の再生位置が表示される iPhone 画面の上部のみが表示されます)、残りのサムネイルは常に黒くなります。前述のように、他の場合はうまく機能します。

どうもありがとう!

4

3 に答える 3

3

MPMoviePlayerController doku: link を確認してください。UIImageを返す「thumbnailImageAtTime:timeOption:」関数があります..

于 2011-04-11T08:46:53.897 に答える
1

MPMoviePlayerControllerを使用している場合は、これを試すことができます

- (void)getThumbnailImage
{
UIImage *thumbnailImage = [player thumbnailImageAtTime:player.currentPlaybackTime timeOption:MPMovieTimeOptionExact];
}
于 2011-04-11T08:54:00.523 に答える