`
wenxin2009
  • 浏览: 320575 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ios视频

    博客分类:
  • ios
 
阅读更多

MPMoviePlayerViewController视频播放。添加MediaPlayer.framework

示例代码如下:

//
//  ViewController.h
//  MoviePlayTest
//  视频播放
//  Created by Dwen on 13-2-28.
//  Copyright (c) 2013年 Dwen. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
//本地视频播放
- (IBAction)playMovie:(id)sender;
//远程视频播放
- (IBAction)remote:(id)sender;

@end

 

//
//  ViewController.m
//  MoviePlayTest
//  视频播放:支持的文件类型包括MOV、MP4、MPV、M4V、3GP、MP3、AIFF和M4A.
//  Created by Dwen on 13-2-28.
//  Copyright (c) 2013年 Dwen. All rights reserved.
//

#import "ViewController.h"
#import <MediaPlayer/MediaPlayer.h>

#define PATHSTRING @"http://www.archive.org/download/bb_poor_cinderella/bb_poor_cinderella_512kb.mp4"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSLog(@"系统名称:%@ ,系统版本: %@",[[UIDevice currentDevice] systemName],[[UIDevice currentDevice] systemVersion]);
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

//本地播放
- (IBAction)playMovie:(id)sender {    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp4"];
    NSURL *URL = [NSURL fileURLWithPath:path];
    if (URL) {
        MPMoviePlayerViewController* tmpMoviePlayViewController=[[MPMoviePlayerViewController alloc] initWithContentURL:URL];
        //视频资源类型
        tmpMoviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
        //播放结束后通知
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:tmpMoviePlayViewController];
        //播放视频
        [tmpMoviePlayViewController.moviePlayer play];
        //动画跳转界面
        [self presentMoviePlayerViewControllerAnimated:tmpMoviePlayViewController];
        NSLog(@"play...");
    }
}

//远程播放
- (IBAction)remote:(id)sender {
//    NSURL *URL = [[NSURL alloc] initFileURLWithPath:PATHSTRING];
    NSURL *URL = [NSURL URLWithString:PATHSTRING];
    if (URL) {
        MPMoviePlayerViewController *tmpMoviePlayViewController=[[MPMoviePlayerViewController alloc] initWithContentURL:URL];
        [self presentMoviePlayerViewControllerAnimated:tmpMoviePlayViewController];
        tmpMoviePlayViewController.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
        
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:tmpMoviePlayViewController];
        [tmpMoviePlayViewController.moviePlayer play];
        NSLog(@"play...");
    }else{
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"文件不存在" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
        [alert show];
    }
}

//播完后关闭视频
-(void)playbackDidFinish:(NSNotification *)noti
{
    MPMoviePlayerViewController * mpv = [noti object];
    [mpv dismissMoviePlayerViewControllerAnimated];
}
@end

 

实现过程中的问题:

1、

//保存当前视频播放时间通知(**为解决当正在播放时,用户按home键使程序进入后台并暂停工作,当用户再次点击程序时,需回到开始退出视频的播放点继续播放)

- (void)viewDidLoad{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(saveCurrentPalyTime) name:@"SaveCurrentPalyBackTime" object:nil];
    //继续播放通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(continuePlay) name:@"ContinuePlayBack" object:nil];

}

- (void)viewDidUnload{
    //清除通知,不然会报异常
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

 

应用程序Delegate.m文件中

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    //通知方式保存当前视频播放时间
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SaveCurrentPalyBackTime" object:self];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    //继续播放视频通知
    [[NSNotificationCenter defaultCenter] postNotificationName:@"ContinuePlayBack" object:self];
}

 

分享到:
评论

相关推荐

    iOS视频压缩的两种方式

    本篇文章将详细介绍两种常见的iOS视频压缩方法:使用AVFoundation框架的AVAssetExportSession和利用FFmpeg库。 1. AVFoundation框架的AVAssetExportSession: AVFoundation是Apple提供的一个强大的多媒体处理框架,...

    iOS视频和图片混合轮播.zip

    本教程将介绍两种实现iOS视频和图片混合轮播的方案,供开发者根据项目需求选择适合的方法。 首先,我们要了解基本的轮播组件。在iOS中,通常使用`UICollectionView`或`UIPageViewController`来实现轮播效果。对于...

    iOS视频图片混合轮播,支持视频播放和图片预览

    本项目标题“iOS视频图片混合轮播,支持视频播放和图片预览”揭示了一个功能完备的解决方案,它能够无缝地在图片和视频之间切换,为用户提供流畅的浏览体验。 在iOS开发中,我们通常使用Objective-C或Swift来构建...

    iOS 视频播放Demo

    在iOS开发中,视频播放是常见的功能之一,尤其在移动应用中,用户对多媒体内容的需求日益增长。这个“iOS 视频播放Demo”提供了一个很好的起点,帮助开发者了解如何在iOS应用中集成视频播放功能。以下将详细讲解相关...

    ios视频通话demo

    在iOS平台上实现视频通话功能,通常涉及到多个技术层面,包括音视频采集、编码、传输以及解码和渲染等。以下是对这些关键知识点的...通过深入理解这些知识点,并结合具体代码,可以构建出完整的iOS视频通话应用程序。

    iOS视频播放demo

    本示例项目“iOS视频播放demo”旨在提供一个基础的视频播放功能,包括进度条控制、播放时间与剩余时间的显示以及快进和选择播放进度的能力。以下是关于这个项目的一些关键知识点和实现细节: 1. **AVFoundation框架...

    ios 视频分割编辑

    它包含了众多工具和库,支持多种编码格式和协议,是iOS视频处理的首选库之一。要将FFmpeg集成到iOS项目中,可以采用CocoaPods或者手动导入源码的方式。 视频分割是视频编辑的基础操作,它允许我们选取视频中的特定...

    iOS视频引导页demo

    "iOS视频引导页demo"是一个示例项目,它展示了如何在iOS应用程序中集成视频作为启动引导页。这个简易demo可以帮助开发者理解并实现这一功能。 在iOS中创建视频引导页涉及到以下几个关键知识点: 1. **视频资源处理...

    ios-IOS 视频播放器 大小屏切换.zip

    在iOS平台上,开发一款视频播放器并实现大小屏切换功能是一项常见的需求,尤其在移动设备与智能电视或者外接显示器的交互场景下。这个“ios-IOS 视频播放器 大小屏切换.zip”文件可能包含了一个示例项目,用于演示...

    ios-ios 视频弹幕简单demo.zip

    本项目提供了一个简单的iOS视频弹幕(Demo)示例,帮助开发者快速理解和实现这一功能。以下将详细解析这个Demo的核心知识点: 1. **弹幕系统设计**: - 弹幕系统通常包含弹幕的生成、展示、移动和消失等基本功能。...

    iOS视频全屏时锁定横竖

    标题"iOS视频全屏时锁定横竖"所涉及的核心知识点是iOS应用中的屏幕方向管理,以及针对视频播放的特殊处理。描述中提到的“iOS 9.3测试有效”,意味着这是一个适用于至少iOS 9.3及以上版本的解决方案。 首先,了解...

    IOS视频播放器

    本项目"IOS视频播放器"旨在提供一个替代苹果原生`MPMoviePlayerController`的解决方案,它具备播放本地和远程视频、控制进度、快进、后退、暂停和全屏等功能,从而提升用户的观影体验。 首先,我们要理解`...

    iOS视频播放器

    以下是对标题“iOS视频播放器”和描述中的关键知识点的详细解释: 1. **本地视频播放**:iOS视频播放器能够支持本地视频的播放,意味着它需要读取并解析存储在设备上的视频文件。这通常通过使用Apple的AVFoundation...

    ios 视频播放第三方(KrVideoPlayerPlus-master)

    在iOS开发中,视频播放是一个常见的需求,许多开发者会选择使用第三方库来实现这一功能,以提高效率和用户体验。本文将详细介绍“ios 视频播放第三方(KrVideoPlayerPlus-master)”这一开源项目,以及它如何帮助...

    ios视频解码

    本篇文章将深入探讨iOS视频解码的核心概念、使用的技术以及如何在实际项目中应用。 1. 视频解码基本原理 视频解码是将经过编码的视频流还原成原始图像帧的过程。它涉及到了视频编码标准,如H.264、HEVC(High ...

    ios 视频在线播放器

    在iOS平台上,开发一款视频在线...通过以上技术,我们可以构建一个功能完备、用户体验良好的iOS视频在线播放器。在实际开发中,还需要结合具体需求,如视频列表展示、播放控制界面设计、广告插播等功能进行扩展和定制。

    ios视频和音频的合成

    这篇博客“ios视频和音频的合成”可能提供了实现这一目标的方法和工具。虽然具体的代码没有直接提供,但我们可以根据标签“源码”和“工具”推测文章会讨论一些编程实践和可能用到的库。 在iOS上进行音视频合成,...

    IOS视频监控demo

    "IOS视频监控demo"是一个示例项目,它提供了实现视频监控功能的基础框架,特别适用于集成大华和海康等知名安防设备厂商的设备。这个demo可以作为开发者学习和参考的起点,帮助他们快速理解和构建自己的视频监控解决...

    IOS视频教程地址 关东升老师主讲

    【标题】"IOS视频教程地址 关东升老师主讲"所涵盖的知识点主要集中在iOS开发的基础部分,由知名讲师关东升主讲。这是一套针对初学者的教程,旨在帮助学习者快速掌握iOS应用程序开发的基本技能,尤其关注Objective-C...

    ios视频拍摄&转码mp4

    总结来说,"iOS视频拍摄&转码mp4"涵盖了AVFoundation框架的使用、摄像头参数设置、视频数据处理、编码与封装、元数据管理和用户体验优化等多个方面。理解并掌握这些知识点,能帮助开发者在iOS平台上实现高效且高质量...

Global site tag (gtag.js) - Google Analytics