iOS音频如何制作颤音或颤音效果

时间:2018-10-31 05:04:49

标签: ios audio

如何在iOS 8+的APP中制作颤音或颤音音频效果?

我正在通过Apple提供的AVFoundation在iOS 8+的APP中制作音频效果。而且我通过AVAudioEngine建立了一些效果,例如音高偏移,延迟(回声),失真。但是我没有找到与颤音或颤音效果有关的AVAudioUnit。

我找到的唯一文档是Audio Unit Programming Guide,但是此文档不再更新,并且该文档中提到的Core Audio SDK也消失了。

我不在乎使用属于AVFoundation的高级API或什至是用c / c ++编写的低级API,我只想使用某种方法来产生颤音或颤音效果,或者一般来说,如果没有封装的API,找到一种制作定制音频效果的方法。

顺便说一下,这是我的示例代码来产生延迟(回声)效果 (iOS 8 +,Xcode 10.0):

...

if(!self.avAudioEngine.running) {
    NSLog(@"AVAudioEngine is not running!");
    return;
}

// reset all the nodes
[self.avAudioEngine reset];

// attach node
if(!self.avAudioUnitDelay) {
    self.avAudioUnitDelay = [[AVAudioUnitDelay alloc] init];
}
[self.avAudioEngine attachNode:self.avAudioPlayerNode];
[self.avAudioEngine attachNode:self.avAudioUnitDelay];

// connect node
if(!self.avAudioMixerNode) {
    self.avAudioMixerNode = [self.avAudioEngine mainMixerNode];
}

[self.avAudioEngine connect:self.avAudioPlayerNode to:self.avAudioUnitDelay format:nil];
[self.avAudioEngine connect:self.avAudioUnitDelay to:self.avAudioMixerNode format:nil];

// parameters
self.avAudioUnitDelay.delayTime = 0.02;
self.avAudioUnitDelay.feedback = 80;
self.avAudioUnitDelay.wetDryMix = 90;

// play
[self.avAudioPlayerNode scheduleFile:self.soundFile atTime:nil completionHandler:nil];
[self.avAudioPlayerNode play];
...

1 个答案:

答案 0 :(得分:-1)

尝试这个

import UIKit
import AudioToolbox

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))            
    }
}