0

私は HCYoutubeParser ( https://github.com/hellozimi/HCYoutubeParser ) を使用して、ios アプリでいくつかのビデオを再生しています。ビデオを再生しようとすると、再生されないようです。

コードは次のようになります。

- (void)playVideo:(id)sender
{
    if (_urlToLoad)
    {
        MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc]initWithContentURL:_urlToLoad];
        _mp = player;
        [self presentViewController:_mp animated:YES completion:nil];
    }
}

- (void)submitYouTubeURL:(id)sender {

    [playButton setImage:nil forState:UIControlStateNormal];

    NSURL *url = [NSURL URLWithString:_urlOfYoutube];
    activityIndicator.hidden = NO;
    [HCYoutubeParser thumbnailForYoutubeURL:url thumbnailSize:YouTubeThumbnailDefaultHighQuality completeBlock:^(UIImage *image, NSError *error) {

        if (!error) {
            [playButton setBackgroundImage:image forState:UIControlStateNormal];
            playButton.hidden = NO;

            NSDictionary *qualities = [HCYoutubeParser h264videosWithYoutubeURL:url];
            _urlToLoad  = nil;
            _urlToLoad = [NSURL URLWithString:[qualities objectForKey:@"medium"]];
            NSLog(@"%@",[NSURL URLWithString:[qualities objectForKey:@"medium"]]);
            activityIndicator.hidden = YES;

            [playButton setImage:[UIImage imageNamed:@"play_button"] forState:UIControlStateNormal];
        }
        else {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
            [alert show];
        }
    }];
}

問題を与える行は _urlToLoad = [NSURL URLWithString:[qualities objectForKey:@"medium"]];

[NSURL URLWithString:[Qualities objectForKey:@"medium"]] は null を返します..

これを解決するにはどうすればよいですか?

4

1 に答える 1

2

私の場合、0のキーと値のペアを取得していました

NSDictionary *qualities = [HCYoutubeParser h264videosWithYoutubeURL:url];

つまり、qualitiesキーと値のペアが 0 になっていました。

のコード、HCYoutubeParser.mメソッド+ (NSDictionary *)h264videosWithYoutubeID:(NSString *)youtubeIDの変数signature変数が初期化されていないことがわかったので、NSString *signature = nil; を置き換えました。とNSString *signature = @"";

于 2014-03-03T13:41:33.503 に答える