设置 AVAudioPlayer 实例的委托
Posted
技术标签:
【中文标题】设置 AVAudioPlayer 实例的委托【英文标题】:Setting The Delegate of an AVAudioPlayer Instance 【发布时间】:2012-03-12 05:04:13 【问题描述】:对不起,如果这是一个愚蠢的问题,但我在属性时遇到了一个问题。
在我的程序中,我创建了 4 个 AVAudioPlayer 实例。这些都在一个名为 ShapeView 的类中,从 NSObject 派生。我不确定我应该将委托设置为什么,当我将其设置为“自我”时,它会给我一个警告:“将 'ShapeView *const_strong 发送到不兼容类型'id'的参数”
我是一个相对缺乏经验的程序员,在玩声音,所以任何帮助都将不胜感激。
谢谢!
【问题讨论】:
【参考方案1】:解决此问题的两种方法:
1:像这样符合.h中的协议:
@interface MyExampleClass : NSObject <AVAudioPlayerDelegate>
...
然后为每个玩家设置代理。
2:如果编译器仍然抱怨,出于某种原因,将 self 类转换为 id 会使它消失。所以:
[self.audioplayer setDelegate:(id)self];
【讨论】:
以上是关于设置 AVAudioPlayer 实例的委托的主要内容,如果未能解决你的问题,请参考以下文章
AVAudioPlayer 和 AVAudioRecorder:未调用委托方法
Swift AVAudioPlayer (Xcode) - 在应用程序包外播放音频文件
触发 AVAudioPlayer 以停止所有声音并播放选定的声音,除非单击播放(选定)按钮