【问题标题】:Using AVAudioRecorder and AvAudioPlayer simultaneously同时使用 AVAudioRecorder 和 AvAudioPlayer
【发布时间】:2013-05-06 22:28:36
【问题描述】:

我需要在 iPhone 上录制音频(讲座等)并通过耳机直接播放。

我的代码大部分时间都可以使用!

  1. 我设置了我的 AVAudioSession

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord 错误:nil];

  2. 我设置了播放器和录音机,它们都指向同一个 URL。

    audioRecorder = [[AVAudioRecorder alloc] initWithURL:soundFileURL 设置:记录设置 错误:&error];

    //设置音频播放 audioPlayer = [[AVAudioPlayer 分配] initWithContentsOfURL:soundFileURL 错误:&error];

  3. 我准备演奏和录音

    [录音机准备录音]; [audioPlayer prepareToPlay];

暂时一切顺利。然后突然,播放器停止,其当前时间归零。

它看起来并没有被解除分配,因为我可以从开始位置继续播放录制的声音。停止似乎是随机发生的,每次发生的时间不同。

有人对问题所在或如何调试有任何建议吗?

提前致谢!

【问题讨论】:

标签: ios avaudioplayer


【解决方案1】:

总结以下闲话:根据我的经验,只要文件在初始化时有数据,AVAudioPlayer 就会播放。

我也在为同样的事情苦苦挣扎;我想知道你是否找到了一个好的解决方案。我正在做一个类似的项目(我希望能够在录制时进行录制和播放,但会有一点延迟)。

我首先创建一个工作正常的 AVAudioRecorder。然后我用 initWithContentsOfURL 启动一个 AVAudioPlayer,指向同一个文件。

我发现如果播放器启动时该文件中有 3 秒的声音(通过 .duration 属性),它会在 3 秒后停止,即使 AVAudioRecorder 在那之后继续。

我已尝试通过在第一个播放器接近录制的初始持续时间结束时创建第二个播放器来解决此问题,但这会导致我似乎可以摆脱掉一点音频。

如果我们能告诉 AVAudioPlayer 继续读取文件就好了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    相关资源
    最近更新 更多