• 音/视频处理


    1>音频播放

    Ø依赖的框架:AVFoundation、AudioToolbox框架
    Ø播放长音乐:AVAudioPlayer
    Ø播放短音效:加载音频文件生成SystemSoundID
    Ø录音:AVAudioRecord

    2>视频播放

    两个视频播放类的区别:

    MPMoviePlayerController继承自NSObject;

    MPMoviePlayerViewController继承自UIViewController,它内部封装了一个MPMoviePlayerController。
     
    简单使用:
    // 加载视频资源
    
    NSString *urlString = [[NSBundle mainBundle] pathForResource:@"sample_iTunes" ofType:@"mov"];
    
    NSURL *url = [NSURL fileURLWithPath:urlString];
    
    // 创建播放器
    
    _player = [[MPMoviePlayerController alloc] initWithContentURL:url];
    
    // 设置尺寸
    
    _player.view.frame = self.view.bounds;
    
    _player.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
    
    // 添加到控制器的view上
    
    [self.view addSubview:_player.view];
    
    // 播放
    
    [_player play];
    // 监听播放状态的改变
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoStateChange) 
        name:MPMoviePlayerPlaybackStateDidChangeNotification object:_player]; // 监听播放器结束全屏 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(exitFullscreen)
        name:MPMoviePlayerDidExitFullscreenNotification object:_player];

    其它属性、方法:

    是否要自动播放
    @property(nonatomic) BOOL shouldAutoplay;
    
    全屏显示
    @property(nonatomic, getter=isFullscreen) BOOL fullscreen;
    - (void)setFullscreen:(BOOL)fullscreen animated:(BOOL)animated;
    
    截取视频中的图片
    - (void)requestThumbnailImagesAtTimes:(NSArray *)playbackTimes timeOption:(MPMovieTimeOption)option;

     完整代码:视频播放

    附:

    1>添加图片到系统相册中

         UIImageWriteToSavedPhotosAlbum([UIImage imageNamed:@"Default.png"], self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);

    2>导入视频到相册中
      UISaveVideoAtPathToSavedPhotosAlbum函数
     
  • 相关阅读:
    大龄程序员肉翻记录【一】
    spring boot 在不同环境下读取不同配置文件的一种方式
    JDK的一个关于stack的小bug
    《DISTRIBUTED SYSTEMS Concepts and Design》读书笔记 一
    一个简单的任务执行引擎设计
    spring集成guava的event bus
    Unity输出文件在itunes读取
    MaxScript调用DotNet时命名空间的问题
    max渲染通道元素的范例
    Unity里vertexShader里压扁模型来实现比较low的阴影
  • 原文地址:https://www.cnblogs.com/yaoxc/p/3857437.html
Copyright © 2020-2023  润新知