本地视频播放-ios

复制代码
// 视频播放
-(void)playMovie
{
    self.navigationItem.rightBarButtonItem.enabled = YES;
    
    self.movieName = @"1305178253912757X4VMU00207002";
    self.folderName = @"1-11";
    //在VideoFolder文件夹下建立子文件夹
    NSFileManager *fm = [[NSFileManager alloc]init];
    NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];
    NSString *folderPath = [docs stringByAppendingPathComponent:[NSString stringWithFormat:@"VideoFolder/%@/%@.mp4",self.folderName,self.movieName]];
    BOOL exists = [fm fileExistsAtPath:folderPath];
    if (exists) {
        NSURL *urls = [NSURL fileURLWithPath:folderPath];
        movie = [[MPMoviePlayerController alloc]initWithContentURL:urls];
        movie.controlStyle = MPMovieControlStyleDefault;
        [movie  prepareToPlay];
        [movie.view setFrame:CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height-60)];
        movie.movieSourceType = MPMovieSourceTypeFile;
        movie.initialPlaybackTime = -1;
        [self.view addSubview:movie.view];
        //注册一个播放结束的通知
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:movie];
        [movie play];
    }
    [fm release];
    
}
//当视频播放结束的时候关闭视频
-(void)movieFinishedCallback:(NSNotification*)notify
{
    //视频播放对象
    MPMoviePlayerController* theMovie = [notify object];
    //销毁播放通知
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:theMovie];
    [theMovie.view removeFromSuperview];
    [movie.view removeFromSuperview];
    // 释放视频对象
    //    [movie release];
    [theMovie release];
}
//手动关闭视频
-(void)closeMovie
{
    self.navigationItem.rightBarButtonItem.enabled = NO;
    
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:movie];
    [movie.view removeFromSuperview];
}
复制代码

 

posted on   jack_yan  阅读(292)  评论(0编辑  收藏  举报

编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
< 2013年5月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示