因为项目需要导出视频的背景音乐要淡入淡出,这样显得不会那么唐突,特别是淡出,视频播放完成就直接没了。所以就写了以下方法:

#pragma mark - 视频音乐淡入淡出
-(void)videoMusicFadeInAndFadeOut:(NSString *)videoPath exportPath:(NSString *)exportPath
{//视频来源路径NSURL *videoInputFileUrl = [NSURL fileURLWithPath:videoPath];//导出路径NSURL *videoExportUrl = [NSURL fileURLWithPath:exportPath];//删除相同导出路径的文件unlink([exportPath UTF8String]);//初始化开始时间CMTime nextClipStartTime = kCMTimeZero;//创建可变的音频视频组合AVMutableComposition *mixComposition = [AVMutableComposition composition];//视频采集AVURLAsset *videoAsset = [[AVURLAsset alloc]initWithURL:videoInputFileUrl options:nil];CMTimeRange videoTimeRange = CMTimeRangeMake(kCMTimeZero,videoAsset.duration);AVAssetTrack *videoTrack = [[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];AVMutableCompositionTrack *videoCompositionTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid];[videoCompositionTrack insertTimeRange:videoTimeRange ofTrack:videoTrack atTime:nextClipStartTime error:nil];//声音采集  获取原视频中的音频   声音长度截取范围==视频长度CMTimeRange audioTimeRange = CMTimeRangeMake(kCMTimeZero,videoAsset.duration);//创建一个输出AVAssetExportSession *assetExport = [[AVAssetExportSession alloc]initWithAsset:mixComposition presetName:AVAssetExportPresetMediumQuality];assetExport.outputFileType = AVFileTypeMPEG4;assetExport.shouldOptimizeForNetworkUse = YES;assetExport.outputURL = videoExportUrl;//判断该视频是否包含音频 如果没有 则不添加音频if ([videoAsset tracksWithMediaType:AVMediaTypeAudio].count > 0) {//获取视频中的音频轨道AVAssetTrack *audioTrack = [[videoAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];//初始化一个音频容器AVMutableCompositionTrack *audioCompositionTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid];//插入音频到容器[audioCompositionTrack insertTimeRange:audioTimeRange ofTrack:audioTrack atTime:nextClipStartTime error:nil];//初始化音频混合器AVMutableAudioMix *exportAudioMix = [AVMutableAudioMix audioMix];//获取混合后的音轨AVAssetTrack *mixCompositionTrack = [[mixComposition tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];//初始化音频混合器导出配置参数AVMutableAudioMixInputParameters *exportAudioMixInputParameters = [AVMutableAudioMixInputParameters audioMixInputParametersWithTrack:mixCompositionTrack];//初始化淡入淡出持续时间  这个可以根据项目需求来设置这里前5秒淡入音量从0到1.0,最后5秒淡出音量从1.0到0 大家可以根据自己需求修改CMTime continueTime = CMTimeMakeWithSeconds(5, 1);//设置前5秒音乐淡入[exportAudioMixInputParameters setVolumeRampFromStartVolume:0 toEndVolume:1.0 timeRange:CMTimeRangeMake(CMTimeMakeWithSeconds(0, 1), continueTime)];//计算开始淡出的时间CMTime fadeOutStartTime = CMTimeSubtract(videoAsset.duration, continueTime);//设置最后5秒音乐淡出[exportAudioMixInputParameters setVolumeRampFromStartVolume:1.0 toEndVolume:0 timeRange:CMTimeRangeMake(fadeOutStartTime, continueTime)];//设置音频混合器参数NSArray *audioMixParameters = @[exportAudioMixInputParameters];exportAudioMix.inputParameters = audioMixParameters;//添加到导出配置中assetExport.audioMix = exportAudioMix;}//开始导出[assetExport exportAsynchronouslyWithCompletionHandler:^(void ) {NSLog(@"$$$");NSLog(@"完成!输出路径==%@",exportPath);}];
}

(有喜欢的关注下,也可以评论,后续会更多视频相关的代码,菜鸟一个不喜勿喷!!!)

iOS实现视频背景音乐淡入淡出相关推荐

  1. 两行Python代码实现视频的淡入淡出处理

    ☞ ░ 老猿Python博文目录 ░ 一.引言 最近看到好几篇类似"n行Python代码-"的博文,看起来还挺不错,简洁.实用,传播了知识.带来了阅读量,撩动了老猿的心,决定跟风一 ...

  2. an怎么做淡入_Pr怎么给字幕、视频、音频做淡入淡出效果

    用pr软件给视频或字幕或音频添加淡入淡出效果 92素材网小编推荐: 注意:视频和字幕文件的淡入淡出方法一致,为方便看各写了一种方法,两个方法可以通用 一.给视频添加淡入淡出效果 11.打开pr,在&q ...

  3. 怎么快速调节EDIUS中声音的淡入淡出?

    使用EDIUS制作视频声音的淡入淡出是比较常见的一种视频剪辑形式,本文小编就给大家讲解如何做EDIUS视频声音淡入淡出. 1.将素材拖到合适位置的时间线轨道上,打开声音的波形显示开关,如下图中红框显示 ...

  4. html背景音乐淡入,音乐淡入淡出软件 音乐淡入淡出什么意思 给视频的背景音乐做淡入淡出效果...

    看到今天的这个标题可能大家就有点蒙圈了哈,肯对大多都在想一个问题:"什么叫音乐淡入淡出呢".哈哈,其实所谓音乐淡入淡出的意思就是开始的时候音乐声音是缓缓变大,不会突然很大.结束的时 ...

  5. Python视频处理案例六则:旋转视频、调整音量/播放速度、淡入淡出、插入转场素材...

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: ============== 环境配置请参考:Python视频处理 ...

  6. Android App开发动画特效中帧动画和电影淡入淡出动画的讲解及实战(附源码和演示视频 简单易懂)

    需要图片集和源码请点赞关注收藏后评论区留言~~~ 一.帧动画 Android的动画分为三类,帧动画,补间动画和属性动画.其中帧动画是实现原理最简单的一种,跟现实生活中的电影胶卷类似,都是在短时间内连续 ...

  7. cocos creator 游戏背景音乐处理(音乐循环淡入淡出等)

    在处理游戏背景音乐中遇到的问题,策划对于音乐播放提出新的想法.但由于目前周围没有人尝试过,所以自己摸索的来. 需求 在同一场景音乐处理 一般同一场景是同一首背景音乐. 现需求在同一场景(时代)内播放不 ...

  8. ios 视图的淡入淡出

    有的时候,我们要在屏幕中现有的视图前方显示一些信息,这些信息本身只起提示作用,并没有什么别的用途,可以用UIView动画效果分别令视图显示出来,或者慢慢消失. 主要代码: - (void) fadeO ...

  9. iOS 淡入淡出转换rootViewController

    登陆之后转换rootViewController // 淡入淡出改变rootViewController - (void)restoreRootViewController:(UIViewContro ...

最新文章

  1. 售价910元!周志华等人英文新书《演化学习》出炉!
  2. 脑科学研究:对于学习来说,休息可能与练习同样重要...
  3. nginx反向代理cas-server之2:生成证书,centOS下使用openssl生成CA证书(根证书、server证书、client证书)...
  4. Markdown 语法说明
  5. 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)
  6. 细数开源历史上的九个重大事件
  7. 公共wifi做家用_如何在公共网络上获得免费的wifi
  8. 【Java进阶营】Java多线程基础学习(一)
  9. 用把百分数转换成a,b,c,d,e等级
  10. 【爬虫】Web Scraper正则表达式
  11. Xcode命令行简单了解一下
  12. 笔记:三维重建大作业1-相机标定
  13. NLP | Word2Vec之基于Negative Sampling的 CBOW 和 skip-gram 模型
  14. 疫情开发,软件测试行情趋势是怎么样的?
  15. 资深WEB前端开发(社区)
  16. Java开发者跳槽必备,面试:Redis为什么这么快呢
  17. 调研:“淘宝村”、“网店村”是如何发家的?
  18. SpringSecurity-密码存储方式
  19. 腾讯自选股任务 青龙脚本
  20. Intel Xeon E7-8880v4 性能评测 阿里云第四代ECS服务器CPU

热门文章

  1. mrpoid模拟器java版_Mrpoid2模拟器
  2. 数据结构【数组和特殊矩阵】
  3. 何为儒家的四书五经?
  4. 6年时间经历8家公司,我的数据科学从业心得
  5. Linux基础学习(十三)之软件管理
  6. 计算机的发展导致消失的职业,未来20年“6成”职业或消失!会影响哪些专业?...
  7. ajax上传文件之ajaxfileupload使用详解
  8. android幻灯片效果自定义,Android自定义View实现仿网易音乐唱片播放效果
  9. 2023年的幽默搞笑配音哪里找?
  10. 【灰狼算法】基于布谷鸟搜索混合灰狼优化算法求解单目标优化问题(AGWOCS)含Matlab源码