2011-04-20 62 views
1

我想在iPhone中获得视频的总持续时间。我使用下面的代码寿得到持续视频不能与MPMoviePlayerController一起玩

videoPath = [videoPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *url = [NSURL URLWithString:videoPath]; 
MPMoviePlayerController *mpPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 
mpPlayer.view.frame = CGRectMake(0, 0, 320, 100); 
[self.view addSubview:mpPlayer.view]; 
NSLog(@"duration = %f",mpPlayer.duration); 
[mpPlayer play]; 

,但我不知道为什么我不能够得到视频的持续时间也将视频得不到发挥。 任何人都可以帮助我找到解决这个问题的方法。

在此先感谢。

+0

你核对答案?没有任何这些解决你的问题吗?如果有,请灰色对号求解的左回答。 – Till 2011-04-21 13:01:10

回答

2

提示:

持续时间可能不实际播放之前可利用 - >检查再次接收MPMoviePlayerPlaybackStateDidChangeNotificationMPMoviePlayerController.playbackState == MPMoviePlaybackStatePlaying)当持续时间是在安全方面。

0

请检查是否对视频的路径是正确的,并检查运动员与正确的文件URL分配

+0

我有检查它的视频路径是完美的,玩家也被分配 – 2011-04-20 04:59:05

0
videoPath = [videoPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    NSURL *url = [NSURL URLWithString:videoPath]; 
    MPMoviePlayerController *mpPlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 
    mpPlayer.view.frame = CGRectMake(0, 0, 320, 100); 
    [self.view addSubview:mpPlayer.view]; 
    NSLog(@"duration = %f",mpPlayer.duration); 
    [mpPlayer play]; 

//add notifications 


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPMoviePlayerLoadStateDidChange:) name:MPMoviePlayerLoadStateDidChangeNotification object:nil]; 

- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification { 

    if ((moviePlayer.loadState & MPMovieLoadStatePlaythroughOK) == MPMovieLoadStatePlaythroughOK) { 
duration = mpPlayer.duration; 
NSLog(@"duration = %f",mpPlayer.duration); 
} 
}  
相关问题