次のエラーが表示されます。
"Implicit conversion of Objective-C pointer type. Type "void*" requires a bridged cast.
ブリッジを使用して同様のコードを修正しましたが、これらのタイプの修正はここでは役に立ちません。コードのビットは次のとおりです。
AURenderCallbackStruct input;
input.inputProc = RenderTone;
input.inputProcRefCon = self;
err = AudioUnitSetProperty(
toneUnit,
kAudioUnitProperty_SetRenderCallback,
kAudioUnitScope_Input,
0,
&input,
sizeof(input));
NSAssert1(err == noErr, @"Error setting callback: %ld", err);
エラーのある 2 番目のコード ビット
SStatus result = AudioSessionInitialize(NULL, NULL, ToneInterruptionListener, self);
if (result == kAudioSessionNoError) {
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty(
kAudioSessionProperty_AudioCategory,
sizeof(sessionCategory),
&sessionCategory);
}
すべての助けを前もってありがとう。
アップデート
問題が解決しました。ブリッジ キャスティングが正しく実装されていませんでした。だったはずです:
input. inputProcRefCon = (__bridge void*)self