iOS学习之路09

来源:互联网 发布:淘宝多少级能上直通车 编辑:程序博客网 时间:2024/05/29 16:35
  • UIImagePickerController
    • 属性imagePicker指的是UIImagePickerController所属类型
    • 图片库

      /*

      UIImagePickerControllerSourceTypePhotoLibrary, 图片库

      UIImagePickerControllerSourceTypeCamera, 相机

      UIImagePickerControllerSourceTypeSavedPhotosAlbum 照片

      */

      self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

      //模态弹出imagePicker

      [self presentViewController:self.imagePicker animated:YES completion:nil];

    • 摄影

      self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

       

      // 设置媒体模式为movie(电影)

      self.imagePicker.mediaTypes = @[(NSString *)kUTTypeMovie];

       

      /* 相机模式为 video(摄影)

      UIImagePickerControllerCameraCaptureModePhoto 照相

      UIImagePickerControllerCameraCaptureModeVideo 视频

      */

      self.imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

       

      /* 设置视频的质量

      UIImagePickerControllerQualityTypeHigh = 0, 高质量

      UIImagePickerControllerQualityTypeMedium = 1,

      UIImagePickerControllerQualityTypeLow = 2, 低质量

      UIImagePickerControllerQualityType640x480 640*480

      UIImagePickerControllerQualityTypeIFrame1280x720 1280*720

      UIImagePickerControllerQualityTypeIFrame960x540 960*540

      */

      self.imagePicker.videoQuality = UIImagePickerControllerQualityType640x480;

       

      [self presentViewController:self.imagePicker animated:YES completion:nil];

    • 照相

      self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

       

      /* 媒体模式

      kUTTypeImage、kUTTypeJPEG、kUTTypeJPEG2000、kUTTypeTIFF、kUTTypePICT、kUTTypeGIF、kUTTypePNG、kUTTypeQuickTimeImage、kUTTypeAppleICNS、kUTTypeBMP、

      kUTTypeICO、kUTTypeRawImage、kUTTypeScalableVectorGraphics、kUTTypeLivePhoto

      */

      self.imagePicker.mediaTypes = @[(NSString *)kUTTypeImage];

       

      // 是否可以编辑,只有一个图片选择小框

      self.imagePicker.allowsEditing = YES;

       

      // 让相机呈现的视图进行仿射转换,但照下来的照片没有什么影响

      self.imagePicker.cameraViewTransform = CGAffineTransformMakeRotation(M_PI_2);

       

      /* 摄像头部位

      UIImagePickerControllerCameraDeviceRear, 后置摄像头(默认)

      UIImagePickerControllerCameraDeviceFront 前置摄像头

      */

      self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;

       

      /* 设置闪光灯状态

      UIImagePickerControllerCameraFlashModeOff = -1, 照相时,关闭闪光灯

      UIImagePickerControllerCameraFlashModeAuto = 0, 照相时,闪光灯自动调节

      UIImagePickerControllerCameraFlashModeOn = 1 照相时,开启闪光灯

      */

      self.imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;

       

      [self presentViewController:self.imagePicker animated:YES completion:nil];

    • UIImagePickerControllerDelegate委托
      • - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;

        当用户选择图片后会调用此委托方法

        /* info 是一个字典,键分别指示的意思

        UIImagePickerControllerMediaType 文件类型

        UIImagePickerControllerOriginalImage 图片数据(UIImage *类型)

        UIImagePickerControllerReferenceURL 文件地址

        */

      • - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

        当用户点击cancel时调用

        此处可以移除自身模态:[self dismissViewControllerAnimated:YES completion:nil];

  • 音频
    • 系统声音(音效)
      • 播放系统声音,无震动

        // 播放系统声音

        AudioServicesPlaySystemSound(1000);

        SystemSounID范围:1000-1351,4095

      • 播放系统声音,可以为系统原有,也可为自己创建的系统声音,有震动

        // 播放声音(有震动)

        AudioServicesPlayAlertSound(soundID);

      • 创建系统声音

        NSString *path = [[NSBundle mainBundle] pathForResource:@"PHONE3" ofType:@"wav"];

        NSURL *url = [NSURL fileURLWithPath:path];

        SystemSoundID soundID;

        AudioServicesCreateSystemSoundID((__bridge CFURLRef _Nonnull)(url), &soundID);

    • 播放本地音频—AVAudioPlayer
      • 常用属性
        • volume:声音大小
      • 常用方法
        • prepareToPlay:准备播放
        • play:播放音频
        • pause:暂停播放
    • 播放远程音频—AVPlayer、AVPlayerItem
      • AVPlayer
        • 常用属性
          • status:播放的状态

            /*

            AVPlayerStatusUnknown, 未知,还未加载完成

            AVPlayerStatusReadyToPlay, 准备播放

            AVPlayerStatusFailed 加载失败,无网络

            */

          • AvplayerItem *currentItem:当前播放元素
        • 常用方法
          • play
          • pause
          • - (CMTime) currentTime;        获取当前时间

            typedef struct{

                CMTimeValue value;        常用

                CMTimeScale timeScale;    常用

                CMTimeFlags flags;

                CMTimeEpoch epoch;

            }CMTime;

            获取播放元素当前时间:

            float time = [self.avPlayer currentTime].value/[self.avPlayer currentTime]. timeScale;

      • AVPlayerItem
        • 常用属性
          • CMTime duration:播放元素的总时长

            得到总时长:

                float duration = self.playItem.duration.value / self.playerItem.duration.timeScale;

        • 常用方法
          • - (CMTime)currentTime;        播放元素的当前时间
  • 视频
    • MPMoviePlayerController        iOS7.0 ~ iOS9.0
    • MPMoviePlayerViewController        iOS7.0 ~ iOS9.0
    • AVPlayerViewController
    • AVPlayerLayer(内含AVPlayer属性)        iOS8.0+
原创粉丝点击