【问题标题】:Using Finch to play sounds on iphone使用 Finch 在 iphone 上播放声音
【发布时间】:2010-11-10 21:08:43
【问题描述】:

我有一个应用程序,它有两种声音: 1. 背景声音,一直循环到下一个视图。 2. 可以单独播放或一次性播放的声音片段。

之前我尝试使用 AVAudioPlayer,但两个剪辑之间总是有一个很小的静音间隔(我没有找到任何解决方案,如果你有,请在回复中发帖),所以转移到 Finch 例如http://github.com/zoul/Finch/tree/master

现在是交易: 我正在使用 AVAudioPlayer 播放永远循环的声音,而 Finch 播放那些背靠背的剪辑。我正在这样做:

- (void)viewDidLoad {
    [super viewDidLoad];

    soundEngine = [[Finch alloc] init];
/***
CLIPPED
***/
}
-(void) playclip:(id) sender {
    NSString *fullPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"sitar.wav"];
    NSLog(@"Song is %@", fullPath);
    clip = [[Sound alloc] initWithFile:fullPath];
    NSLog(@"Clip Length: %@", clip.length);
    NSLog(@"Clip Playing ? : %d", clip.playing);
    [clip play];
    NSLog(@"Played Clip");
}

这与 git 存储库中提供的演示项目的代码几乎相同。但由于某种原因,我在控制台上得到了这个:

Song is /Users/shoaibi/Library/Application Support/iPhone Simulator/User/Applications/17FBA26F-6047-4D56-9E45-ADAFE07B7234/Test.app/sitar.wav
Failed to create OpenAL source, error code a004.
Clip Length: (null)
Clip Playing ? : 0
Played Clip

控制台上打印的目录上的 ls 显示那里有具有正确权限的sitar.wav。可能是什么问题?可能是我停止使用的背景声音 AVAudioPlayer:

- (void)viewWillAppear:(BOOL)animated {

    //Stop the background music before my ears bleed :P
    d = [[UIApplication sharedApplication] delegate];
    if (d.bg.playing)
    {
        [d.bg stop];
        NSLog(@"Background music stoped");
    }

}

没有释放声音资源?

【问题讨论】:

  • AVAudioPlayer 应该不是问题,Finch 应该可以使用 AVAudioPlayer。你在模拟器中运行代码吗? (文件路径建议如此。)模拟器上的 OpenAL 存在问题,您必须在设备上尝试。
  • 相同的代码在设备上失败,只是在写这篇文章时我碰巧使用了模拟器。此外,演示应用程序在模拟器中运行没有任何问题。

标签: iphone iphone-sdk-3.0 ios-simulator avaudioplayer


【解决方案1】:

Latest Finch 现在会在您初始化新的 Sound 时检查 OpenAL 是否已初始化。如果由于忘记或未能初始化 Finch 而未设置当前 OpenAL 上下文,则会收到更好的错误消息。试试看,可能是你的初始化代码有问题。

【讨论】:

    【解决方案2】:

    当我在 viewWillAppear 中调用声音剪辑 allocs 时,我遇到了同样的错误 - 似乎它是在 awakeFromNib 完成它的工作之前调用的。无论如何,转移分配器以便它们稍后发生修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-17
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多