我正在开发管理应用的视频。我在滚动视图中添加视频。
除黑屏外没有任何其他信息可见。此代码工作正常,只在滚动时添加黑色视图,显示内容。
如果有任何人有任何想法,请提供给我。
(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++;
}
}
}
我开发了这段代码。
答案 0 :(得分:0)
您需要使用AVPlayer
代替MPMoviePlayerController
和AVPlayer
一样,您可以将视频渲染到特定的源视图 - 在您的情况下是滚动视图。
答案 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已经拥有了自己的内存管理器。