내 iPhone 앱에서 이어폰을 연결하거나 뽑을 가능성이있는 이어폰에서 눈을 떼지 않고 올바르게 반응하기 위해, 나는 내 수업의 몇 가지에, 다음 코드 종류를 사용하십시오 rvcHandleRouteChange의 콜백 기능이 특별한 이유없이 호출됩니다 한 경우를 제외하고, 오히려 잘 작동하는 것 같다AudioSessionAddProperty 리스너 콜백 함수가 아무 이유없이 호출되었습니다.
- (void)viewDidLoad
{
[super viewDidLoad];
…..
routeChangeID=kAudioSessionProperty_AudioRouteChange;
AudioSessionAddPropertyListener(routeChangeID,rvcHandleRouteChange,(__bridge void *)(self));
}
…….
void rvcHandleRouteChange(void *inUserData,AudioSessionPropertyID inPropertyID,
UInt32 inPropertyValueSize,const void *inPropertyValue)
{
NSLog(@"Hi rvcHandleRouteChange has been called.");
if (inPropertyID!=kAudioSessionProperty_AudioRouteChange) NSLog(@"WRONG CALL!!!");
// Do some useful work ….
}
. 테스트를 통해 잘못된 전화를 걸러 내더라도 "잘못된 전화"로 보이는 것은 없습니다. 나는 이어폰을 꽂거나 뽑는 것이 나없이 불리는 것을 의미한다. 이로 인해 많은 문제가 발생합니다.
누구나 왜 이런 일이 일어날 수 있는지 알고 있습니까?
을 변경해야합니다. if (CFArrayGetCount (outputs)> 0) : if (출력 && CFArrayGetCount (outputs)> 0) –