我正在使用以下代码(在标签栏应用程序中的视图控制器内)播放用户选择表格行后从主包中加载的视频。
- (void)loadMoviePlayer:(NSString*)moviePath
{
NSURL* fileURL = [[NSURL alloc] initFileURLWithPath:moviePath];
MPMoviePlayerViewController* player = [[MPMoviePlayerViewController alloc] initWithContentURL:fileURL];
[fileURL release];
[self presentMoviePlayerViewControllerAnimated:player];
[player release];
}
应用程序在模拟器中构建并运行时没有任何明显问题(我还没有在设备上测试过)但是当我通过Instruments运行它时,在视频播放过程中会发生内存泄漏。
乐器将AudioToolbox强调为“负责任的图书馆”和SimAggregateDevice::SimAggregateDevice(_CFString const*, _CFString const*, long&)
和
APComponent::CreateDispatchTable(AudioComponentPluginInterface*, unsigned long)
作为'负责任的框架'。
你可以放弃任何光线,非常感谢! 感谢。
答案 0 :(得分:0)
您也可以为iPhone和iPad的电影播放器创建自己的自定义控件,您可以在其中创建自定义音量管理,以及许多可以管理的内容。
按照方法启动moview播放器。用于管理mov
-(void)initAndPlayMovie:(NSURL *)movieURL andViewController:(UIViewController*)vCtr
{
self.mPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
// we have movie from file - Alizee :)
[self.mPlayer.moviePlayer setMovieSourceType:MPMovieSourceTypeFile];
// we don't need standard controlls as we have built our own
[self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleNone];
// aspect fit to screen mode
[self.mPlayer.moviePlayer setScalingMode:MPMovieScalingModeAspectFit];
// full screen mode
[self.mPlayer.moviePlayer setFullscreen:YES animated:YES];
// to start movie player
[vCtr presentMoviePlayerViewControllerAnimated:self.mPlayer];
// now we will add our own view over video player
self.vCtr.view.frame=CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height-20);
[self.mPlayer.view addSubview:self.vCtr.view];
}
- (void)stopTapped:(id)sender{
[self.mPlayer.moviePlayer stop];
}
-(void)moviePlayBackDidFinish:(NSNotification*)notification
{
[self.mPlayer dismissMoviePlayerViewControllerAnimated];
[self.vCtr.view removeFromSuperview];
}
答案 1 :(得分:0)
问题不在于“模拟器”本身,而在于AVFoundation 为Mac OS X编译的框架。 - Alex Nichol 2011年8月17日23:53
我将Alex的评论设为接受的答案。 ķ