带有AVFoundation和Swift的iOS多通道音频

问题描述 投票:6回答:1

我目前正处于开发原生iOS应用(Swift 3)的项目的研究和原型开发阶段,其中包括多通道音频播放器(多个立体声MP3文件)。我在网上发现的信息非常有限,尤其是用Swift 3编写的信息,因此在我继续研究时会在这里提出一个问题。

关于框架,到目前为止,从我看来,AVFoundation似乎可以胜任。它的级别不是太低,并且具有良好的功能集。它支持使用AVAudioPlayer播放多个音频文件。我正计划尽快对此进行原型设计。

但是我是Swift和iOS开发的新手,它拥有大量的库,所以我想知道我是否丢失了任何东西,如果我在正确的地方。任何具有一般信息和想法的答案都将被投票通过。要获得可接受的答案,请使用适当的框架,AVFoundation或合理的替代方案提供一些示例大纲代码。

如果没有答案,到那里时,我会发布自己的代码。

特别是我需要从项目资源中的MP3文件中获得2到10个输入通道,每个通道都有自己的增益,可以分别调整增益,然后将所有这些混合在一起,并保持其立体声通道到单个输出(设备),并获得主要收益。有些曲目需要循环播放,有些则不需要。轨道需要精确同步。这仅用于提供信息,大纲代码可以很好地覆盖要点。

研究笔记和资源

Apple: AVFoundation

与AVFoundation相关的资源的集合。

Apple: AVFoundation Programming Guide

此文档起初看起来令人鼓舞,但实际上仅涉及视频。它说:

AVFoundation框架有两个方面-与视频有关的API和与音频有关的API。较早的与音频相关的类提供了处理音频的简单方法。它们在《多媒体编程指南》中有所描述,而不在本文档中进行了描述。

“多媒体编程指南”在Apple的其他地方也与此相关,但从未链接,Google的搜索结果指向在Apple网站上找不到的页面。它似乎已经消失了。

Rudi Strahl: Mixing Multiple Audio Tracks with AVFoundation

比较使用AVComposition与使用多个AVPlayer。示例代码是Objective-C。不确定第二种解决方案中AVPlayers的混合方式。也许用AVAudioMix。目前正在看这个。本文对此稍作讨论,但未提供任何细节。

Audio Session Programming Guide

本文档着眼于AVAudioSession,它提供了支持的功能:

AVAudioSession可让您控制应用的音频行为。您可以:

  • 为您的应用选择适当的输入和输出路径
  • 确定您的应用如何集成其他应用的音频
  • 处理来自其他应用程序的干扰
  • 根据要创建的应用程序类型自动配置音频

Techotopia: Playing Audio on iOS 10 using AVAudioPlayer

关于使用AVAudioPlayer的一些有用信息。

Stack Overflow: Playing a Sound with AVAudioPlayer

用于播放声音的基本Swift代码。一些答案包括一些额外的功能。

Hacking with Swift: How to Play Sounds Using AVAudioPlayer

同样,涵盖了基础。

Sweet Tutos: How To Play Sounds Files And Manage Duration Progress – AVAudioPlayer Tutorial

已更新为Swift3。一些有用的信息。

Xamarin: Playing Sound with AVAudioPlayer

我想是在Swift 2中写的。

Apple Video: WWDC 2013 Moving to AV Kit and AV Foundation

虽然没有直接关系,但我发现此视频的前30分钟向开发人员介绍了OS X 10中的AV Kit和AV Foundation,提供了对该技术的有用概述。

ios iphone audio swift3 avfoundation
1个回答
0
投票

我正在研究同一个问题,最好的办法是使用avplayer转码要播放的媒体内容,这里是draft,也许可以帮忙。

© www.soinside.com 2019 - 2024. All rights reserved.