iPhone测试视频链接是否有效

时间:2011-06-15 19:47:54

标签: iphone objective-c streaming

我创建了一个能够直播的应用,但我目前无法测试视频是否有效。我正在尝试创建一个if else语句来测试视频是否处于活动状态。我正在使用返回“d”结果的JSON Web服务。我目前正在使用设计用于播放视频文件的IB动作中的以下代码块:

-(IBAction) playVideo:(id)sender {
NSString *baseVideoUrl = @"http://streaming5.calvaryccm.com:1935/live/iPhone/playlist.m3u8";
NSLog(@" finalUrl is : %@",baseVideoUrl);

//EXPERIMENTAL

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.calvaryccm.com/ServiceTimes.asmx/IsServiceTime/path"]];
[request setHTTPMethod:@"POST"];
if (NSString *postString = @"d";) {
    [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
}
else{
    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:baseVideoUrl]];

    if ([moviePlayer respondsToSelector:@selector(setFullscreen:animated:)]) {  
        // Use the 3.2 style API  
        moviePlayer.controlStyle = MPMovieControlStyleDefault;  
        moviePlayer.shouldAutoplay = YES;  
        [self.view addSubview:moviePlayer.view];  
        [moviePlayer setFullscreen:YES animated:YES];  
    } 

}
}

我不知道我做错了什么。我需要帮助创建用于测试流是否处于活动状态的语句。

1 个答案:

答案 0 :(得分:1)

首先使用isEqualToString:来比较NSString。你在if语句中所做的是一项评估为真的作业。所以这样做,

if ( [responseString isEqualToString:@"d"] ) {
    // Handle active content.
}
[..]

这里还有另一个问题。您正在创建一个NSMutableURLRequest对象,但它永远不会被评估。虽然我还没有正确理解这个JSON Web服务是如何实现的,但我希望它可以像是,

NSError * error = nil;
NSString * responseString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.calvaryccm.com/ServiceTimes.asmx/IsServiceTime/path"]
                                                     encoding:NSUTF8StringEncoding
                                                        error:&error];
if ( error ) {
    NSLog(@"%@", [error localizedDescription]);
}

if ( [responseString isEqualToString:@"d"] ) {
    // Handle active content.
} else {
    // Inform user that the content is unavailable.
}