MPMoviePlayerController“thumbnailImageAtTime:timeOption:”选择器不存在

时间:2010-07-13 16:27:11

标签: objective-c iphone

此代码

MPMoviePlayerViewController* mp = [[MPMoviePlayerViewController alloc] initWithContentURL:url];

    int i=0;
    unsigned int mc = 0;
    Method * mlist = class_copyMethodList(object_getClass([mp moviePlayer]), &mc);
    NSLog(@"%d methods", mc);
    for(i=0;i<mc;i++)
        NSLog(@"Method no #%d: %s", i, sel_getName(method_getName(mlist[i])));
    /* note mlist needs to be freed */

    if  ([[mp moviePlayer] respondsToSelector:@selector(thumbnailImageAtTime:timeOption:)])
    {
        image = [[mp moviePlayer] thumbnailImageAtTime:(NSTimeInterval)2.0 timeOption: MPMovieTimeOptionNearestKeyFrame];
    }
    [mp release];

打印此日志

45种方法

方法号#0:暂停

方法编号#1:停止

方法编号#2:initialPlaybackTime

方法编号#3:setInitialPlaybackTime:

方法编号#4:scalingMode

方法编号#5:setScalingMode:

方法编号#6:contentURL

方法编号#7:initWithContentURL:

方法编号#8:movieSourceType

方法编号#9:setMovieSourceType:

方法编号#10:movieMediaTypes

方法编号#11:prepareToPlay

方法编号#12:isPreparedToPlay

方法编号13:isFullscreen

方法编号#14:setUseApplicationAudioSession:

方法编号#15:shouldAutoplay

方法编号#16:setShouldAutoplay:

方法编号#17:controlStyle

方法编号#18:setControlStyle:

方法编号#19:setContentURL:

方法编号#20:setFullscreen:animated:

方法编号#21:useApplicationAudioSession

方法编号#22:playableDuration

方法编号#23:setEndPlaybackTime:

方法编号#24:endPlaybackTime

方法编号#25:loadState

方法编号#26:dealloc

方法编号#27:查看

方法编号#28:init

方法编号#29:forwardInvocation:

方法编号#30:backgroundView

方法编号#31:methodSignatureForSelector:

方法编号#32:持续时间

方法编号#33:播放

方法编号#34:setRepeatMode:

方法编号#35:playbackState

方法编号#36:setFullscreen:

方法编号#37:naturalSize

方法编号#38:skipToBeginning

方法编号#39:repeatMode

方法编号#40:beginSeekingBackward

方法编号#41:beginSeekingForward

方法编号#42:endSeeking

方法编号#43:skipToNextItem

方法编号#44:skipToPreviousItem

没有任何缩略图选择器。

谁知道这种奇怪行为的原因?

1 个答案:

答案 0 :(得分:0)

Objective-C具有多级调度,因此您感兴趣的方法可能是懒惰或通过转发实现的。要查看它是否已经延迟解决,只需在调用方法后将循环移动到

虽然以上都是真的,但您正在寻找的方法是MPMoviePlayerController,而不是MPMoviePlayerViewController。