此代码
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
没有任何缩略图选择器。
谁知道这种奇怪行为的原因?
答案 0 :(得分:0)
Objective-C具有多级调度,因此您感兴趣的方法可能是懒惰或通过转发实现的。要查看它是否已经延迟解决,只需在调用方法后将循环移动到。
虽然以上都是真的,但您正在寻找的方法是MPMoviePlayerController,而不是MPMoviePlayerViewController。