2016-07-13 2 views
0

이 앱이 내 iPod에서 음악 플레이어를 중지하는 이유를 알아 내려고합니다. 현재, XCode에서, 나는 첫 번째 줄에 main()의 중단 점을 설정하고 여전히 해당 줄에 도달하면 음악 플레이어가 이미 중지되었습니다.내 앱을 입력하자마자 ios - 음악 플레이어가 멈 춥니 다.

모든 정적 생성자가 이미 실행되었다고 상상할 수 있지만 명백한 범인 (AVAudioSession의 모든 설명)을 검색 한 결과 main() 전에 실행 된 것이 없습니다.

코드베이스가 방대하기 때문에 찾고있는 것을 모른 채 모든 파일의 모든 생성자를 맹목적으로 검색하면 고통 스러울 것입니다. 외부 오디오가 재생되는 것을 막는 XCode 프로젝트 속성이나 내가 찾을 수있는 어떤 것이 있는지 알려줄 수 있습니까? 감사합니다.

편집 : 많이 줄였습니다. 첫째, 어떤 이유로 XCode가 나를 완전히 오도하는 대부분의 중단 점을 무시하는 것 같습니다. 실제로 개체의 정적 초기화 였으므로 궁극적으로이 호출로 연결됩니다.

newDevice = alcOpenDevice (NULL);

몇 가지 이유로 실제로 여기에 중단 점이 생길 수 있습니다. 숫자가 ... 그래서, 나는이 줄에서 음악을 연주하지만, 나는 그것을 실행 한 후에는 연주하지 않는다. 그것은 장치의 openal의 초기화가 어떤 이유로 든 모든 외부 음악을 차단하는 것 같습니다 ... 이유를 이해하려고 노력하고 어떻게 우회 할 수 있습니까?

+0

전체 프로젝트에서 'AVAudioSession'을 검색 한 다음 각 단계에서 속성이 무엇인지 확인합니다. 음악 플레이어가 멈추는 시점을 포함시켜야합니다. 예를 들어 시동시 또는 'viewDidLoad'주기의 중간에 중단됩니다. etc etc –

+0

main()이 시작되기 전에 시작하는 동안 중단됩니다. main()의 첫 번째 줄에 중단 점을 설정하고 앱을 실행하고 뮤직 플레이어를 중지했습니다. 음악 플레이어로 전환하여 재생하도록 설정하고 xcode에서 앱을 다시 시작했습니다. 음악은 계속 연주되었습니다. 그것은 음악을 죽이는 시작과 같은 것입니다. 나는 그것을 찾지 못했습니다 ... –

+0

음악을 다시 시작하지 않고 음악을 시작한 후에도 음악이 계속 재생됩니까? 예를 들어,'AVCaptureSession'은'AVAudioSession'을 인터럽트/무시할 수 있기 때문에 무슨 일이 벌어지고 있는지 이해하기 위해서는 더 많은 코드가 필요할 것입니다. –

답변

0

좋아, 문제를 발견했다. 웬일인지, Xcode는 도움이되지 못했습니다. 그래서 나는 모든 곳에 중단 점을 설정하여 주전에 가기 전에 무엇이 실행되는지 살펴 보았습니다. 이것은 코드가 실행 중이라는 것을 알고 있었기 때문에 Xcode가 실패한 곳입니다.하지만 어떤 이유로 중단 점이 트리거되지 않았습니다. 또한, 어떤 이유로, 다른 사람들이했기 때문에 나는 여전히 그 특별한 미스터리를 풀어야한다.

그 외에도 AVAudioSessionCategoryAmbient를 사용하여 AVAudioSession을 구성하기 바로 전에 OpenAL을 초기화하는 것이 문제였습니다. 그 둘을 전환 한 후에 모든 것이 잘 작동했습니다.

도움 주셔서 감사합니다.

+0

안녕하세요 Joao, 중단 점에 대해 이야기하는 경우 프로젝트 빌드의 구성표가 디버그 또는 릴리스인지 확인하십시오. exec 디버그 확인 –

1

AVAudioSession's Categories에 대한 문서를 확인하십시오. 수정 불가능한 AVAudioSessionCategoryAVAudioSessionCategoryAmbient으로 변경하면 재현 할 수 있습니까?

+0

원격으로 AVAudioSession (Cocos2D 내부의 57 개 모두)을 언급 한 모든 호출에 중단 점을 설정했으며 그 중 아무 것도 부딪치지 않았습니다. 메인의 맨 처음 줄에있는 중단 점은 음악이 이미 꺼진 상태에서 분명히 나타납니다. 그래서 메인 전의 무언가가 뮤직 플레이어를 죽이고 있습니다. –

0

로드시 AppDelegate을 통해 음악을 재생하도록 설정 했습니까?

사용자가 앱으로 다시로드하면 음악을 계속 재생할 수 있습니다.

관련 문제