我们如何在滚动条上添加视频?

时间:2013-05-10 07:29:10

标签: iphone ios xcode ios6

我正在开发管理应用的视频。我在滚动视图中添加视频。

除黑屏外没有任何其他信息可见。此代码工作正常,只在滚动时添加黑色视图,显示内容。

如果有任何人有任何想法,请提供给我。

(void)LoadVideosToScrollView
{    
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory=[paths objectAtIndex:0];
    NSString *videoDirectory=[documentDirectory stringByAppendingPathComponent:@"/videos"];
    NSFileManager *fileManger=[NSFileManager defaultManager];
    NSDirectoryEnumerator *docEnum=[fileManger enumeratorAtPath:videoDirectory];
    MPMoviePlayerController *localMoviePlayer;
    CGFloat xAxis=10;
    NSInteger n=0;
    NSString *fileName;

    [self.scrollView setContentSize:CGSizeMake(560, 200)];
    while ((fileName=[docEnum nextObject]))
    {
        NSString *filePath=[videoDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",fileName]];
        //if file exist then file will be added on ScrollView
        if ([fileManger fileExistsAtPath:filePath])
        {
            NSURL *urlForFile=[NSURL fileURLWithPath:filePath];
            NSLog(@"%@",[urlForFile description]);
            localMoviePlayer=[[MPMoviePlayerController alloc]initWithContentURL:urlForFile];
            localMoviePlayer.scalingMode=MPMovieScalingModeAspectFit;
            localMoviePlayer.shouldAutoplay=NO;
            localMoviePlayer.controlStyle=MPMovieControlStyleNone;
            [localMoviePlayer prepareToPlay];
            tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
            [localMoviePlayer.view addGestureRecognizer:tap];
            [localMoviePlayer.view setTag:n];
            [localMoviePlayer.view setFrame:CGRectMake(xAxis,5,150,120)];
            [self.scrollView addSubview:localMoviePlayer.view];
            [moviePlayerContainer addObject:urlForFile];
            xAxis+=155;
            n++;
        }
    }
}

我开发了这段代码。

2 个答案:

答案 0 :(得分:0)

您需要使用AVPlayer代替MPMoviePlayerControllerAVPlayer一样,您可以将视频渲染到特定的源视图 - 在您的情况下是滚动视图。

祝你好运

答案 1 :(得分:0)

您没有调用播放方法

// Plays items from the current queue, resuming paused playback if possible.
- (void)play;

尝试下一个代码

 _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:filePath]];

[[_moviePlayer view] setFrame:[[self view] bounds]];
[[self view] addSubview: [_moviePlayer view]];

_moviePlayer.scalingMode = MPMovieScalingModeAspectFit;

[_moviePlayer play];

如果你在一个滚动视图上有很多视频你会遇到memmory管理问题,为了优化显示视频列表的过程,你可以使用UITableView并在每个单元格上放置视频,因为UITableView已经拥有了自己的内存管理器。