ios播放视频demo

今天要用到ios原生态播放一段网络视频,在此整理共享出来

白白手游专栏http://blog.csdn.net/u010229677

首先需要给工程添加框架MediaPlayer.Framework

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

@interface ViewController ()
{
    MPMoviePlayerViewController *playerViewController;
    MPMoviePlayerController *player;

    UIButton                *_playBtn; //播放按钮
    UIImageView             *_image;   //播放按钮图片
    UIImageView             *_thumbImgView; //抓取视频的图片
}

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSInteger VideoWidth = 320;
    NSInteger VideoHeight = 200;
    NSInteger VideoY = 44;
    //重新初始化MPMoviePlayerController,否则获取视频的第一帧图片,会引起无法播放的bug。
    MPMoviePlayerController *pc = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://sm.domob.cn/ugc/151397.mp4"]];

    //获取视频的第一帧图片
    UIImage *videoThumbImg = [pc thumbnailImageAtTime:0 timeOption:MPMovieTimeOptionNearestKeyFrame];
    _thumbImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, VideoY, VideoWidth, VideoHeight)];
    [_thumbImgView setImage:videoThumbImg];
    [self.view addSubview:_thumbImgView];

    //设置播放按钮
    _playBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    _playBtn.backgroundColor = [UIColor clearColor];
    [_playBtn setFrame:CGRectMake(0.0f, VideoY, VideoWidth, VideoHeight)];
    [_playBtn setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [_playBtn addTarget:self action:@selector(playVideo) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_playBtn];

    //设置播放按钮的图片
    _image = [[UIImageView alloc]init];
    _image.frame = CGRectMake(140,120, 50, 50);
    [_image setImage:[UIImage imageNamed:@"yss_ios_hy_huodong_touxiang.png"]];
    [self.view addSubview:_image];

}

//播放视频
- (void) playVideo
{
    //根据视频播放状态,点击视频,出现播放按钮图片或者隐藏
    if (player && player.playbackState == MPMoviePlaybackStatePlaying ) {
        [player pause];
        _image.hidden = NO;
        return;
    }else if (player && player.playbackState == MPMoviePlaybackStatePaused) {
        _image.hidden = YES;
        [player play];
        return;
    }

    //界面刚显示播放按钮应显示,所以调用时播放图片应为隐藏
    _image.hidden = YES;
    NSInteger VideoWidth = 320;
    NSInteger VideoHeight = 200;
    NSInteger VideoY = 44;
    //播放视频
    player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://sm.domob.cn/ugc/151397.mp4"]];
    player.view.frame = CGRectMake(0, VideoY, VideoWidth,VideoHeight);
    player.controlStyle = MPMovieControlStyleNone;
    player.repeatMode = MPMovieRepeatModeNone;
    [player setFullscreen:YES animated:YES];
    player.scalingMode = MPMovieScalingModeAspectFit;
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(myMovieFinishedCallback:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:player];
    [self.view insertSubview:player.view belowSubview:_playBtn];
    [player play];
}

//播放视频结束的回调
-(void)myMovieFinishedCallback:(NSNotification*)notify
{
    //视频播放对象
    MPMoviePlayerController* theMovie = [notify object];
    //销毁播放通知
    [[NSNotificationCenter defaultCenter] removeObserver:self
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:theMovie];
    [theMovie stop];
    [theMovie.view removeFromSuperview];
    //如果视频播放停止了,显示播放按钮图片
    if (player && player.playbackState == MPMoviePlaybackStateStopped){
        _image.hidden = NO;
        [player stop];
        return;
    }
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return toInterfaceOrientation == UIInterfaceOrientationPortrait;
}

- (BOOL)shouldAutorotate
{
    return YES;
}

@end
时间: 2024-10-13 22:52:22

ios播放视频demo的相关文章

IOS 播放视频 MPMoviePlayerController

在unity游戏的开头播放视频 , 根据需求 , 最后决定用 MPMoviePlayerController 来实现播放, 实现如下: by Tin 需要在AppController.mm的 OpenEAGL_UnityCallback  修改下view的大小 UIView *mainView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; // mainView.backgroundColor

ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)

ABBPlayerKit ios开发视频播放后台下载功能实现 : 代码下载地址:https://github.com/niexiaobo/ABBPlayerKit github资料学习和下载地址:https://github.com/niexiaobo/ 实现功能 :播放视频 ,视频后台下载 (真机调试功能正常) 1.使用ZFPlayer播放视频(可以在线和本地播放,基于AVPlayer,调节音量和屏幕亮度) 2.使用 WHCNetWorkKit 实现下载,后台下载(多任务同时下载,单任务下载,

iOS播放视频

1.首先导入 MediaPlayer import MediaPlayer 2.播放事件 class ViewController:UIViewController{ var pc:MPMoviePlayerViewController! @IBAction func playVideoBtnClicked(sender:AnyObject){ //播放资源 pc=MPMoviePlayerViewController(contentURL:NSBundle.mainBundle().URLFo

Cocos2d-x Lua 播放视频(iOS&amp;android)

最近刚转了游戏,来公司不久就接到一个任务就是做一个视频播放的功能,自己花了3天时间,暂时实现了一个简易的功能,特写篇博客,以作记录. 参考地址如下: http://blog.csdn.net/xiaominghimi/article/details/6870259 http://blog.csdn.net/kaitiren/article/details/11832851 http://blog.csdn.net/candyforever/article/details/8905852 实现功能

iOS UIWebView 全屏播放视频, 需横屏,单app不支持横屏, 解决办法

原文  http://blog.csdn.net/alincexiaohao/article/details/39294523 参考blog: UIWebView中视频播放屏幕自动旋转,app不支持旋转但是某一个页面需要旋转等 使用UIWebView播放视频时捕捉全屏播放事件 iOS两个强制旋转屏幕的方法 IOS:屏幕旋转与Transform 在使用UIWebView播放视频的时候,想到视频应该能够旋转播放.但是app本身是不支持旋转的,所以把代码记录如下,引申出来的答案就是:所有的你想要进行页

@java--liang 这是一款HTML5的前端视频Jquery组件,里面有41个播放器Demo。

原文:@java--liang 这是一款HTML5的前端视频Jquery组件,里面有41个播放器Demo. 源代码下载地址:http://www.zuidaima.com/share/1550463527406592.htm 支持播放格式:MP3,M4A / M4V,OGA / OGV,WEBMA / WEBMV,WAV,FLA / FLV,RTMPA / RTMPV 如果有使用上的不明白的可以QQ交流,或者留言给我,第一时间回复. 早上看到你的留言,希望能帮你度过这个星期,不至于完蛋,@jav

仿抖音上下滑动播放视频(兼容安卓,ios,小程序,h5)

仿抖音上下滑动播放视频(兼容安卓,ios,小程序,h5) 运行条件 HBuilder X 2.2.2 安装后,从插件市场导入,即可真机运行 vue 项目地址 github https://github.com/15157757001/scroll-video uniapp插件市场 https://ext.dcloud.net.cn/plugin?id=664 说明 插件分别用swiper实现(多端兼容)和css3动画实现(暂时只支持app),可自行切换. 插件在uni-app编译模式下编写(已切

关于MPMoviePlayerController类播放视频时,外放没有声音的问题(ios)

一.导入音频资源类 #import "AVFoundation/AVAudioSession.h" 二.在播放视频的方法中加一句支持外放的代码 [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 参考下面的例子 #pragma mark - 播放视频 - (void)playMovie:(CGRect)videoRect { // 检查网络设置 BOOL netA

【iOS开发】解决“点击MPMoviePlayerController播放视频时,出现一个黑屏闪屏问题”

当点击某按钮播放视频时,如果在按钮触发函数时alloc MPMoviePlayerController对象,同时加载资源文件,因为加载资源文件也需要时间,这时会有一个短暂的黑色闪屏,这点体验很不好,有一个好的解决方案是,提前alloc预加载好该MoviePlayer对象,点击按钮时直接调用play. 预加载相关代码: //预加载视频,避免出现黑屏 NSString *videoPath=[[NSBundle mainBundle]pathForResource:@"startVideo"