当前位置: 首页 > news >正文

简述企业网站的网络营销功能网页制作的三大技术

简述企业网站的网络营销功能,网页制作的三大技术,企业网站首页设计公司,wordpress .po 在哪里组合媒体时间处理 CMTimeCMTimeRange创建组合资源 示例音频混合 自动调节音量视频过渡 AVVideoCompositionAVVideoCompositionInstructionAVVideoCompositionLayerInstruction部署视频计算通过和过渡的时间范围创建组合和层指令创建和配置AVVideoComposition应用过渡效果 溶解推…

  • 组合媒体
  • 时间处理
    • CMTime
    • CMTimeRange
  • 创建组合资源
    • 示例
  • 音频混合
    • 自动调节音量
  • 视频过渡
    • AVVideoComposition
    • AVVideoCompositionInstruction
    • AVVideoCompositionLayerInstruction
    • 部署视频
    • 计算通过和过渡的时间范围
    • 创建组合和层指令
    • 创建和配置AVVideoComposition
    • 应用过渡效果
      • 溶解
      • 推入
      • 擦除
    • 演练
  • 动画层内容
    • AVSynchronizedLayer
    • AVVideoCompositionCoreAnimationTool
    • 导出CoreAnimation
    • 演练

组合媒体

媒体组合就是将需要的相关片断从资源中提取出来,再将他们组合成一个临时排列。AVFoundation明确定义了相关功能,可以让开发者简单地将多个音频和视频资源组合成一个新资源。

AVFoundation有关资源组合的功能源于AVAsset的子类AVComposition。AVComposition中的轨道都是AVAssetTrack的子类AVCompositionTrack。一个组合轨迹本身由一个或多个媒体片断组成,由AVCompositionTrackSegment类定义,代表这个组合中的实际媒体区域,描述如下图所示:

AVComposition和AVCompositionTrack都是不可变对象,提供对资源的只读操作。这些对象提供了一个合适的接口让应用程序的一部分可以进行播放或处理。但当需要创建自己的组合时,就需要使用AVMutableComposition和AVMutableCompositionTrack所提供的可变子类。要创建自定义组合,需指定在将要添加到组合的源媒体的时间范围,还要指定要添加片段的每个轨道的位置。

时间处理

CMTime

通常苹果开发者使用NSTimeInterval表示时间,虽然在大多数情况下,它可以满足要求,但是它的不精确性导致它无法用于更高级的媒体开发中。因此CoreMedia框架中定义了CMTime数据类型作为时间格式。定义如下:

typedef struct {CMTimeValue value;CMTimeScale timescale;CMTimeFlags flags;CMTimeEpoch epoch;
}CMTime;

其中,CMTimeValue和CMTimeScale分别是64位和32位有符号整数,CMTime是分数形式,CMTimeFlags是一个掩码位,用于表示时间的指定定状态,我们可以使用CMTimeMake函数来创建一个时间,并使用CMTimeShow将时间值输出到控制台。另外,还有CMTimeAdd和CMTimeSubtract函数可以简单的完成时间的加减。

CMTimeRange

CoreMedia框架还为时间范围提供了一个数据类型,称为CMTimeRange,它在有关资源编辑的API中有重要地位。CMTimeRangem上两个CMTime组成,第一个表示时间范围的起点,第二个值表示时间范围的持续时间。定义如下:

typedef struct {CMTime start;CMTime duration;
}CMTimeRange;

同样的,我们可以使用CMTimeRangeMake函数来创建一个CMTimeRange,使用CMTimeRangeShow输出到控制台,另外一种创建的方法是CMTimeRangeTimeToTime,提供一个时间范围的起点和终点的CMTime值来创建。

创建组合资源

使用loadValuesAsynchronouslyForKeys:completionHandler:加载资源之后,就可以开始创建组合资源。通用代码如下所示:

AVMutableComposition* composition = [AVMutableComposition composition];AVMutableCompositionTrack* videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo perferredTrackID:kCMPersistentTrackID_Invalid];AVMutableComposition* audioTrack = [composition addMutableTrackWithMediaType:AVMediaTypeAudio perferredTrackID:kCMPersistentTrackID_Invalid];

上面的示例创建了一个AVMutableComposition并用它的addMutableTrackWithMediaType:perferredTrackID:方法添加了两条轨道,并为其设置两个ID,这个值通用值kCMPersistentTrackID_Invalid常量,这个常量的意思是我们需要创建一个合适轨道的ID的任务委托给框架,标识符会以1..n排列。示意图如下:

创建两个轨道之后, 接下来就是将独立的媒体片段插入到组合的轨道内,代码如下所示:

说明如下:

  1. 定义一个CMTime变量cursorTime来表示我们所指的插入光标点。轨道的这个时间点就是我们插入媒体片段的位置。
  2. 我们取视频片断前5秒钟的内容,所以创建一个CMTimeRange,令其从kCMTimeZero开始,持续时间5秒。
  3. 使用tracksWithMediaType:方法从第一个AVAsset中提取视频轨道,然后使用insertTimeRange:ofTrack:atTime:error:将视频轨道插入到轨道中。
  4. 使用CMTimeAdd函数来移动光标的插入时间,使得下一段内容可以在另一段内容最后插入。
  5. 同样的,提取资源视频轨道并将其插入到组合资源的视频轨道上
  6. 重置cursorTime,同样的插入对应的音频轨道,此时轨道示视图如下:

示例

如下是我随便截取自《Titanic》的两个片断,本来想上传gif的,但是CSDN限制只能低于2M,怎么搞都搞不出来,所以只能上传两张静态图片:

seg1

seg2

然后使用上述代码,最终将得到两个片断中的部分内容,并且播放的是第一个视频的声音,如下所示:

音频混合

我们在日常生活中经常有这种场景,开始播放声音的时候,音量从小到大,到结束的时候,声音又从大到小。AVFoundation提供了AVAudioMix来实现这些功能。

AVAudioMix所具有的音频处理方法是由它的输入参

http://www.yayakq.cn/news/84604/

相关文章:

  • 简单的购物网站制作网站建设常用的工具
  • 浏览器什么网站都能打开的动态模板网站建设
  • 行业门户网站系统wordpress 漂浮
  • 纪念币商城网站建设土巴兔网站开发技术
  • 公众号做电影网站企业快速建站的公司
  • 新泰营销型网站建设网站建设中的多语言翻译如何实现
  • 网站优化需要什么软件网站架构设计师工资水平
  • 饿了吗外卖网站怎么做WordPress极简博客主题
  • 有那些专门做职业统计的网站外贸型网站建设公司
  • 临漳专业做网站怎么在百度做免费推广
  • 有哪些做动图网站上海建筑 公司网站
  • 做网站用空间好还是服务器好正方教务管理系统入口
  • 企业网站建设费用入什么科目网站开发前后端分离
  • 衡水企业网站制作公司乌克兰武装部队最新战报
  • 禅城网站建设山东住房城乡建设厅网站首页
  • 北京网站建设是什么代刷网站推广免费
  • 如何建设营销型的网站广安seo优化
  • 无锡赛孚建设工程有限公司网站答题卡在线制作网站
  • 建网站 开发app设计个人网页
  • 网页粒子效果网站沈阳seo建站
  • 今天开始做女神免费网站淘特网官方网站下载
  • wordpress访问网站很慢wordpress 整站带数据
  • 旅游网站的建设与应用关于进一步加强网站建设和
  • 长春网站建设路网站ico图标怎么做
  • h5网站开发案例wordpress 进度条
  • 我们常见的网站有哪些方面网站建设的客户
  • 徐州网站建设方案来几个关键词兄弟们
  • 设计公司网站怎么做新泰网站seo
  • 商务网站建设的一般流程网络营销方式使用情况数据
  • 做羽毛球网站安卓手机做网站