嵌入式视频在UIView中使用iPhone

时间:2009-08-28 14:32:40

标签: iphone

我想编写一个应用程序,在视图中下载(或流式传输)视频(根据需要进行编码)。我不想使用SDK中的MPVideoPlayer,因为它会全屏打开视频。我想在视频上放置另一个UIView(透明),以便我的用户可以对视频进行注释。

任何人都有任何想法,或者可以指出一些将在UIView中播放视频的代码?

4 个答案:

答案 0 :(得分:1)

如果您想这样做,您需要包含您自己的(软件)视频解码器,该解码器无法访问系统上的硬件加速。即使你能让它以可接受的性能工作,也会造成巨大的电池消耗。

答案 1 :(得分:1)

如果你想以纵向模式播放视频,我有解决方案。

如果您认为-MPMovie Player可以在视图下运行,根据我的说法,这是不可能的。

MP电影播放器​​将按照Apple的设计运作。

因此,MP电影播放器​​将始终/几乎全屏运行。

肖像模式的解决方案。

@interface MPMoviePlayerController (extend)
-(void)setOrientation:(int)orientation animated:(BOOL)value;
@end

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieUR];
[moviePlayer setOrientation:UIDeviceOrientationPortrait animated:NO];
if (moviePlayer)
{
        [self.moviePlayer play];
}

希望对你有所帮助。

请参阅,我的问题与您的问题非常相似。

playing video in custom size screen - view in iphone

答案 2 :(得分:1)

试试这个:

UIViewController *v = [[UIViewController alloc] init];
v.view.backgroundColor = [UIColor orangeColor];

NSString *path = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"mp4"];    
if (![[NSFileManager defaultManager] fileExistsAtPath:path])
{
    NSLog(@"cannot find %@ in bundle or doctuments", path);
}

NSURL *url = [NSURL fileURLWithPath:path];


MoviePlayerViewController *mpvc = [[MoviePlayerViewController alloc] initWithContentURL:url];

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(movieFinishedCallback:) 
                                             name:MPMoviePlayerPlaybackDidFinishNotification 
                                           object:mpvc.moviePlayer];

mpvc.moviePlayer.fullscreen = NO;  
[mpvc.moviePlayer setControlStyle:MPMovieControlStyleNone];
mpvc.moviePlayer.view.frame = CGRectMake(10, 100, 300, 300);

[v.view addSubview:mpvc.moviePlayer.view];
[mpvc.moviePlayer play];

[self presentModalViewController:v animated:YES];

[v release];

答案 3 :(得分:0)

也许您应该检查MediaPlayer的私有标头,然后只需将视频的视图添加为视图的子视图。