我正在使用Matt的旧AudioStreamer开发音频流应用程序,并且我尝试使用以下方法(当接到电话时)打扰您:
- (void)MyAudioSessionInterruptionListener(void *inClientData, UInt32 inInterruptionState)
{
AudioStreamer *streamer = (AudioStreamer*)inClientData;
if (inInterruptionState == kAudioSessionBeginInterruption)
{
[streamer stop];
NSLog(@"kAudioSessionBeginInterruption");
}
else if (inInterruptionState == kAudioSessionEndInterruption)
{
[self playpause];
NSLog(@"kAudioSessionEndInterruption");
}
}
我的问题是我试图用[self playpause]调用函数“playpause”;但是我出现了一个未声明的playpause错误!
如何在MyAudioSessionInterruptionListener内部声明playpause?
最佳答案
假设AudioStreamer类是带有该方法的类,则它不是[self playPause]应该是[streamer playpause]。listener方法是您类之外的静态C函数,因此您不能在self上调用方法,因为self意味着您在该类的实例中。如果带有该方法的类不是AudioStreamer,那么您将不得不在inClientData参数中传递该类,以便能够掌握它。
希望能有所帮助