【问题标题】:Using AVAudioPlayer in iOS5?在 iOS5 中使用 AVAudioPlayer?
【发布时间】:2012-02-29 19:16:41
【问题描述】:

所以我尝试在 iOS5 中播放 .wave 文件,但我收到了一条警告,这会导致 SIGABRT 和通常无法正常工作的代码。

NSURL *soundUrl = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Resources/Sounds/01_main_menu_list.wav", [[NSBundle mainBundle] resourcePath]]];
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
[_audioPlayer setDelegate:self];
[_audioPlayer play];

这给了我一个错误“将“ViewController *const __strong”发送到不兼容类型“id”的参数。

我真的不知道为什么,我已经关注了六个例子,但我还是一无所获。我想要一个指向正确方向的指针。

【问题讨论】:

    标签: avaudioplayer


    【解决方案1】:

    这应该可行:

    NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"01_main_menu_list" ofType:@"wav"]]; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    audioPlayer.delegate = self;
    [audioPlayer play];
    

    如果不是,我认为 wav 文件有问题。也许是编码?

    【讨论】:

    • 播放了文件,但警告仍然存在。知道这意味着什么以及如何将其敲在头上吗?我的脑海里已经深陷警告只是一个尚未崩溃的错误:)
    • 你在哪一行代码得到警告,它到底说了什么?
    • 委托线,它准确地说明了我上面写的内容。 "将 "ViewController *const __strong" 发送到不兼容类型 'id' 的参数。
    • 尝试改变audioPlayer.delegate = self;到 audioPlayer.delegate = (id)self;
    【解决方案2】:

    原来这是 ARC 发布的一个问题,我通过为有问题的 AVAudioPlayer 添加 @property 和 @synthesize 对来修复它,并声明它是强大的。它消除了所有这些错误,并且播放文件没有任何问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多