Как воспроизвести видео изнутри складной UITableViewCell? - PullRequest
0 голосов
/ 16 мая 2018

HI All: я установил разборные uitableviewcells и пытаюсь заставить видео воспроизводиться методом didSelectRowAtIndexPath. Я могу заставить клетки запускать оператор печати на консоль, но независимо от того, что я пытаюсь получить видео для воспроизведения, ничего не работает! Вот код:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   [tableView deselectRowAtIndexPath:indexPath animated:YES];

    if(indexPath.section == 0)
    {
        if(indexPath.row == 0)
        {
            printf("hello");
        }
        else
        {
        printf("good bye");
        }
    }
    else if(indexPath.section == 1)
    {
        if(indexPath.row == 0)
        {
            printf("hello");
        }
        else
        {
            printf("good bye again");
        }
    }
}

Подскажите, пожалуйста, что мне нужно сделать, чтобы воспроизвести локальный видеофайл? Очевидно, мне нужна помощь в Objective C, пожалуйста! Я попытался программно создать AVPlayerViewController, а затем использовать метод [selfsentviewcontroller], но всегда получаю следующую ошибку (что является той же ошибкой, если я использую prepareforSegue):

  NSString *path = [[NSBundle mainBundle] pathForResource:@"PrelimFig1" ofType:@"m4v"];
        _videoURL = [NSURL fileURLWithPath:path];
        NSLog(@"I want to log: %@", _videoURL);
        AVPlayerViewController *avp = [[AVPlayerViewController alloc]init];
        AVPlayer *player = [AVPlayer playerWithURL:_videoURL];
        avp.player = player;

        [self presentViewController:avp animated:YES completion:nil]
        [player play];

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете сделать это

   NSURL *videoURLLocal = [[NSBundle mainBundle]URLForResource:@"PrelimFig1" withExtension:@"m4v"];


    AVPlayerViewController *avp = [[AVPlayerViewController alloc]init];
    AVPlayer *player = [AVPlayer playerWithURL:videoURLLocal];
    avp.player = player;
    [self presentViewController:avp animated:YES completion:^{
        [player play];
    }];

или

       NSURL *videoURLLocal = [[NSBundle mainBundle]URLForResource:@"PrelimFig1" withExtension:@"m4v"];

    // create an AVPlayer
    AVPlayer *player = [AVPlayer playerWithURL:videoURLLocal];

    // create a player view controller
    AVPlayerViewController *controller = [[AVPlayerViewController alloc]init];
    controller.player = player;
    [player play];

    // show the view controller
    [self addChildViewController:controller];
    [self.view addSubview:controller.view];
    controller.view.frame = self.view.frame;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...