zoukankan      html  css  js  c++  java
  • 关于基本视频播放的Demo

    最近在做一个视频的Demo,当然是仿的别人的,现贴出原文地址:http://code4app.com/forum.php?mod=viewthread&tid=8959&highlight=%E8%A7%86%E9%A2%91

    ,欢迎大家支持原作者。当然我的只是仿照的,不过平常没有用到过的方法我都写出了注释,不懂得可以探讨。

    https://github.com/losedMemory/ZSAVPlayerVideo 这是我在github上传的源码,欢迎大家下载,如有问题请指正。

    现在列出一些写这个Demo出现的问题。

    1. 控制器继承自MPMoviePlayerController,但是这个类是找不到的,要引入头文件@importMediaPlayer;

    2. 当前播放控制器MPMoviePlayerController 的属性currentPlaybackTime(当前播放装置播放视频的时间)和duration(视频持续的时间)计量单位是秒,一般的话都是转化成分钟:秒,或者小时:分钟:秒

    3.关于运算符的问题:

    & 不管前面的条件是否正确,后面都执行
    && 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好
     
    4.关于旋转屏幕的方法:
    (1)通过人为的view.transform属性
    (2) 通过setOrientation:的办法强制性的旋转到一个特定的方向,这是一个私有的API,上架应用使用会被苹果拒绝,在Demo中使用的就是私有的API,当然大家也可以在网上搜第一种方法。
     
    5.获取音量控件 但是这个音量控件是一个私有的类,不能手动创建,只能这样获取MPVolumeSlider
    MPVolumeView *volumeView = [[MPVolumeViewalloc]init];
       
        volumeView.center = CGPointMake(0, 0);
       
        [self.view addSubview:volumeView];
       
        self.volumSlider = nil;
       
        for (UIView *view in volumeView.subviews) {
           
            //在MPVolumeViews中找一个slider的类
            if ([view.class.description isEqualToString:@"MPVolumeSlider"]) {
               
                self.volumSlider  = (UISlider *)view;
               
                break;
            }
        }
     
    6. setNeedsLayout重新布局  水平滑动快进退,需要将快进退视图进行重新布局,如果不重新布局,快进退时间指示器只显示默认的图片,不会根据手势显示不同的图片
     
    7.注册观察者,这里是监听系统的亮度:“brightness”,但是我注册的时候使用的self,不是用的[UIScreen mainScreen],导致一直崩溃报错信息

    Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer <ZSPlayerVideoBrightnessView 0x7fe6b586b010> for the key path "brightness" from <UIScreen 0x7fe6b3407f20> because it is not registered as an observer.'

    8.关于使用网上是这么解释的:不定期地会发生某些事件,对事件的发生需要作出响应,但是不希望对每个相同的事件作出响应,大意就是对于滑动手势调节音量/亮度/进度只需要到最后让指示器隐藏即可。

    [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(animationHide) object:nil];

    //主线程中调用,异步执行

    [self performSelector:@selector(animationHide) withObject:nil afterDelay:kBrightnessAutoFadeInterval];

     

     
     
  • 相关阅读:
    航班预定统计(差分数组+前缀和)
    救生艇
    Xcode 的正确打开方式——Debugging
    多次页面跳转后pop回主界面的问题
    理解Bitcode:一种中间代码
    使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法
    No identities are available for signing的解决方法
    Aufree/trip-to-iOS
    Alcatraz -- 一个神奇的管理插件的Xcode插件
    GenericKeychain
  • 原文地址:https://www.cnblogs.com/losedMemory/p/5898025.html
Copyright © 2011-2022 走看看