我有一个非常简单的AVAudioPlayer音频播放器(此时)有一首歌。 可以很容易地同时控制两个通道(左和右)的音量。
但是,是否可以仅控制左声道或仅控制右声道?
通过这种方式,我可以将左扬声器设置为右声道,反之亦然。反之亦然。
答案 0 :(得分:3)
应该咨询AVAudioPlayer reference来回答这个问题。
您可以从界面中看到您无法直接控制左/右声道,但您可以将声相设置为-1(全左)到1(全右)。也许这会实现你想要的目标?
使用核心音频会更加困难,但应该能够解决这个问题。使用AVAudioPlayer的另一种可能性是将声音分成单独的声道并单独播放。然后,您可以单独设置音量。文档中有一个例子,说明如何确保两个声音完全同时播放。 (并且,您将要分别为每个声音设置声相,以便每个声音正确播放。)
效率较低的方法是两次同时播放两个.mp3副本。 (警告:我还没有测试过这段代码。)
// assumes you have url for the file you want to play
AVAudioPlayer *first = [[AVAudioPlayer alloc] initWithContentsOfURL:myUrl error:nil];
AVAudioPlayer *second = [[AVAudioPlayer alloc] initWithContentsOfURL:myUrl error:nil];
first.pan = -1; // only play on left channel
second.pan = 1; // only play on right channel
first.volume = 0.6;
second.volume = 1.0;
NSTimeInterval shortStartDelay = 0.01;
NSTimeInterval now = player.deviceCurrentTime;
[first playAtTime: now + shortStartDelay];
[second playAtTime: now + shortStartDelay];