|
请问各位朋友,如何实现在iphone上直接播放在线的视频呢 |
|
|
在线等
|
|
| 50分 |
-(id)init
{
if(self = [super init])
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePreloadDidFinish:)
name:MPMoviePlayerContentPreloadDidFinishNotification
object:nil];
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];
// Register to receive a notification when the movie scaling mode has changed.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(movieScalingModeDidChange:)
name:MPMoviePlayerScalingModeDidChangeNotification
object:nil];
return self;
}
return nil;
}
-(void)playMovie:(Contentinfo*)info
{
if (moviePlayer != nil)
{
[moviePlayer release];
moviePlayer = nil;
}
NSURL* url = nil;
if ([info.pathUrl hasPrefix:@"http://"])
{
url = [NSURL URLWithString:info.pathUrl];
}
else
{
NSString* fullPath = [DataUtil getContentFilePath:info.pathUrl];
NSLog(@"%@",fullPath);
url = [NSURL fileURLWithPath:fullPath];
}
if (url != nil)
{
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
moviePlayer.movieControlMode = MPMovieControlModeDefault;
musicIsPlaying = [[MusicPlayerEngine shareInstence] isPlaying];
if (musicIsPlaying)
{
[[MusicPlayerEngine shareInstence] pause];
}
self.Info=info;
[moviePlayer play];
}
}
//视频已准备好播放
- (void) moviePreloadDidFinish:(NSNotification*)notification
{
NSArray *windows = [[UIApplication sharedApplication] windows];
if ([windows count] > 1)
{
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
UIImageView* view = (UIImageView*)[moviePlayerWindow viewWithTag:LOADING_VIEW_TAG];
if (view != nil) {
[view removeFromSuperview];
}
}
if (0==[[notification userInfo] count])
{ //将系统时间给contentInfo对象
NSString *a=[NSString stringWithString:[self getTime]];
Info.lastPlayedTime=a;
//将contentInfo对象添加到最近播放列表
[[DataBase sharedInstance] addContentInfoToRecentPlayList:self.Info];
}
NSLog(@"moviePreloadDidFinish");
}
//视频已播放结束
- (void) moviePlayBackDidFinish:(NSNotification*)notification
{
NSLog(@"moviePlayBackDidFinish");
if (musicIsPlaying) {
[[MusicPlayerEngine shareInstence] playMusic];
}
//begin zhaozhou mv播放界面退出后,刷新最近播放界面
[self.delegate reloadRecentPlayTableView:self];
//end
}
//视频比例模式发生改变。
- (void) movieScalingModeDidChange:(NSNotification*)notification
{
NSLog(@"movieScalingModeDidChange");
}
|