2013-01-03 48 views
0

進出口使用系統聲音服務,播放聲音我有麥克風錄音, 工作正常,並且使用一個回調的聲音停止時,IOS objC回調調用方法

//callback pa saber termina 
    AudioServicesAddSystemSoundCompletion (soundID,NULL,NULL,completionCallback,(void*) self); //q es un call back?, q es (void*)self?? 

//Use audio services to play the sound 
AudioServicesPlaySystemSound(soundID); 

所以當聲音停止它調用:

//usando Callback! 
static void completionCallback (SystemSoundID mySSID, void* myself) { 
NSLog(@"termino"); 
} 

但我怎麼能叫我的方法:

- (void)stopSoundByDemand{ 
self.playingMode = NO; 
[self.playButton setTitle:@"Play" forState:UIControlStateNormal]; 
[self stopSound]; 
} 

所以,如果我正確理解「回調」只適用於C?

如何從此C調用objC方法?

我看了一下,但還沒有想出,

請我需要澄清的回調是什麼,如果是隻爲C,

以及如何調用該方法,

謝謝!

+0

你嘗試過[[(id)myself stopSoundByDemand]嗎? –

回答

1

自己是你的對象..在回調函數中知道它不屬於你的類的一部分你將它作爲(void *)作爲上下文參數的形式傳遞給函數。

現在要回你的對象,並調用該方法,你拿這個指針從上下文VAR

你的情況
上下文被命名自己: [(id)myself stopSoundByDemand];


回調一般而言是一種不屬於任何實例的功能,因此不瞭解自我。

+0

太好了,簡單點給點意見。) – MaKo