获取视频停止播放时已经播放的时间

获取停止,暂停时视频已经播放的时间主要靠注册通知,当暂停或停止时响应通知时间,获取当前已经播放的时间,同时也可以在视频开始播放时给一个播放时间,从当前播放时间播放视频,用此方法来达到播放视频从上次播放时间开始播放

主要代码

  MPMoviePlayerViewController *mPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:self.itemVideoUrl]];
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:mPlayer.moviePlayer];
            [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:mPlayer.moviePlayer];

#pragma mark - 视频停止播放的通知,用来获取视频停止播放时已经播放的时间
- (void)playbackDidFinish:(NSNotification *)aNote
{
    MPMoviePlayerController *moviePlayer = [aNote object];
    NSDictionary *userInfo = [aNote userInfo];
    int reason = [[userInfo objectForKey:@"MPMoviePlayerPlaybackDidFinishReasonUserInfoKey"] intValue];
    switch (reason) {
        case MPMovieFinishReasonPlaybackEnded:
            break;
        case MPMovieFinishReasonPlaybackError:
            break;
        case MPMovieFinishReasonUserExited:
            break;
        default:
            break;
    }

    CGFloat playtime = [moviePlayer currentPlaybackTime];
    NSLog(@"%f", playtime);
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
}
- (void)playbackStateDidChange:(NSNotification *)aNote
{
    MPMoviePlayerController *moviePlayer = [aNote object];
    switch (moviePlayer.playbackState) {
        case MPMoviePlaybackStateStopped:
            NSLog(@"self.moviePlayer Stopped");
            break;
        case MPMoviePlaybackStatePlaying:
//设置开始播放视频时的时间
            moviePlayer.currentPlaybackTime = 300.07;
            NSLog(@"self.moviePlayer Playing");
            break;
        case MPMoviePlaybackStatePaused:
            NSLog(@"self.moviePlayer Paused");
            break;
        case MPMoviePlaybackStateInterrupted:
            NSLog(@"self.moviePlayer Interrupted");
            break;
        case MPMoviePlaybackStateSeekingForward:
            NSLog(@"self.moviePlayer Forward");
            break;
        case MPMoviePlaybackStateSeekingBackward:
            NSLog(@"self.moviePlayer Backward");
            break;
        default:
            break;
    }

    CGFloat playtime = [moviePlayer currentPlaybackTime];
    NSLog(@"%f", playtime);
}

1.视频什么时候开始播放

当视频开始播放时会发送MPMediaPlaybackIsPreparedToPlayDidChangeNotification,所以你只需要在注册

MPMediaPlaybackIsPreparedToPlayDidChangeNotification通知,当接收到此通知说明视频开始播放。

2.自定义播放器视图时怎么自定义声音控件

使用MPVolumeView控制系统的声音大小。通过改变MPVolumeView slider的值可以改变系统的声音,同时通过调节系统的声音按钮,slider的值也会跟着改变。

volumeView = [[MPVolumeView alloc] initWithFrame:CGRectMake(310, 180, 100, 20)];

volumeView.showsVolumeSlider = YES;

[backView addSubview:volumeView];

[volumeView release];

3.通过presentModalViewController调出MPMoviePlayer所在控制器,当通过dismissModalViewController移除控制器时,手机的状态栏可能会消失。解决办法:在dismissModalViewController调用函数

movieplayer.controlStyle = MPMovieControlStyleFullScreen;

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC), dispatch_get_current_queue(), ^{

[UIApplication sharedApplication].statusBarHidden = NO;

});

时间: 2024-08-16 18:55:15

获取视频停止播放时已经播放的时间的相关文章

选择本地视频时获取视频分辨率和时长

< video style = "display:none;" controls = "controls" id = "aa" > </video> <input type = "file" onchange = "changeFile(this)" > <script> function myFunction(ele) { //视频时长  单位秒 alert

swiper中有视频时,滑动停止后视频停止播放

我们经常能够看到在图片轮播中,穿插着视频的播放,如下图为淘宝的一个产品轮播图,放个视频能够让顾客对产品有个更全面的认识. 我们可以用swiper实现这个功能.用法就跟放图片一样,只是这里把图片换成视频就可以了. 只是如果放的是视频的话,就有一个问题,就是我们怎么在滑动结束的时候,自动停止播放上一个视频呢? 我们可以利用 swiper 提供的 onSlideChangeEnd 方法来做到这种效果,具体代码如下: $(".swiper-container").each(function (

手机影音第十一天,显示视频缓冲,显示卡顿时的网速,播放系统视频时调用播放器的选择

代码已经托管到码云,有兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 一.设置视频缓冲进度 显示视频播放进度的效果图如下:灰色的是缓冲的进度. 原理:只有播放网络视频时,才有缓冲这个说法,所以要先判断视频资源是否为网络资源 /**  * 判断是否是网络的资源  * @param uri  * @return  */ public boolean isNetUri(String uri) {     boolean reault

关于video标签移动端开发遇到的问题,获取视频第一帧,全屏,自动播放,自适应等问题

最近一直在处理video标签在IOS和Android端的兼容问题,其中遇到不少坑,绝大多数问题已经解决,下面是处理问题经验的总结: 1.获取视频的第一帧作为背景图: 技术:canvas绘图 window.onload = function(){ var video = document.getElementById('video'); //使用严格模式 'use strict'; //第一帧图片与原视频的比例 var scal = 0.8; //监听页面加载事件 video.addEventLi

Unity3D中通过Animator动画状态机获取任意animation clip的准确播放持续时长

Unity3d 4及之前的版本中动画的播放用的animation,可直接获取其播放持续长度.但5.x及以后的版本中都是用animator来播放动画了. https://docs.unity3d.com/Manual/AnimationOverview.html While Mecanim is recommended for use in most situations, Unity has retained its legacy animation system which existed b

RTSP播放器网页web无插件直播流媒体音视频播放器EasyPlayer-RTSP-Android解码获取视频帧的方法

应用场景 EasyPlayer-RTSP在多年与VLC的对标过程中,积累了广泛的应用场景,EasyPlayer-RTSP底层与上层全部自主开发,自主知识产权,可实战测试. EasyPlayer-RTSP播放器 EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件).Android.iOS三个平台,是由青犀TSINGSEE开放平台开发和维护的区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了

抖音获取视频点赞数、播放数、获取用户粉丝列表

一.配置 配置如图所示,非常简单!只要去抖音开放平台开通帐号,开通权限,即可获得图片所示的各项参数,填进去即可. 二.功能已实现 OAuth 2.0授权 获取用户公开信息 粉丝列表 关注列表 查询创作者粉丝数据 查询授权账号视频数据 查询指定视频数据 获取视频评论 三.调用方法 安装好插件,并在插件设置里设置了配置信息,即可使用插件 代码里调用插件方式如下: 1.2.3. $dyconfig = hook_one("get_douyin_config"); $AuthInfo = \D

用jQuery实现播放时出现的错误

今天,我在项目时,我的朋友让我给她找错误,她说她用jQuery写视频的播放,获取的按钮也对,使用的方法也对,就是播放不了. 她的思路是这样的,在刚开始的视频画面上有个播放按钮,她想点击这个按钮后让视频开始播放: 她的代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document<

手机影音第五天 视频列表的显示与播放以及个别牌子手机播放的问题

先展示下本次做好的效果: 接着上次的说,上次说到了去获取手机里的视频信息,下面就用listview来展示视频列表与调用系统播放器来播放视频. 1.根据获取到的视频列表,去设置适配器Adapter,然后利用前面写的listview的例子,来展示数据,这个就不详细说明了. 2.点击单个listview的数据,来监听其事件,在监听的方法里,去调取播放方法. 2.1利用隐式意图去调用所有符合要求的播放器.     class MyOnItemClickListener implements Adapte