2

백그라운드 녹음과 관련하여 예기치 않은 문제가 발생했습니다 (특히 화면이 패스 코드 잠김). 요약 내 AVAudioRecorder 앱이 전경, 배경 (앱 전환시) 및 화면이 꺼져있을 때 (패스 잠금이 활성화되기 전에) 올바르게 기록 된 것으로 보입니다.AVAudioSession iOS8에서 AVAudioRecorder를 패스 코드 잠금으로 중지합니다.

패스 코드 잠금 (설정> 패스 코드> 패스 코드 필요> 4 시간 .etc)을 지연하면 전경/배경/앱 전환/화면 꺼짐 등의 문제없이 녹화가 작동하지만, 녹음에서 잠금 킥이 손상됩니다.

나는 기본적으로 오디오를 녹음 AVAudioRecorder에게 코드를 사용하고, 그리고 (즉, 레드 백그라운드에서 작동하는 것 같다 배경 촬영을 위해 app.plist에 설정 'UIBackgroundModes/오디오'를 설정하여 가이드 라인을 따랐 녹음 표시 줄이 나타남) 패스 코드가 활성화되면 사용자가 전원 버튼을 누르고 장치에 액세스하려면 암호를 입력해야합니다.

내 코드는 'AVAudioSessionInterruptionNotification'를 통해 오디오 인터럽트를 처리하기 위해 설정 AVAudioSession이 설정 'withOptions : AVAudioSessionCategoryOptionDuckOthers'입니다 배경 녹화를 초래에서 외부 이벤트를 최소화하기.

[시험 절차]

  • 암호 록 (아이폰 5/iOS8.1> 설정> 암호를> 5 분 후에 비밀번호를> 요구)

    1. [성공 케이스 -1] 7 분 동안 '녹화 시작'을 선택하고 앱을 활성화/표시합니다 (녹화가 시작된 후 백그라운드에서 실행되지 않음). >> 녹화가 작동하고 '녹화 중지'를 누르면 오디오가 저장되고 재생 될 수 있습니다.

    2. [성공 사례 -2] 7 분간 '녹화 시작'화면 켜기 및 앱 전환 (예 : 화면이 거의 켜져 있고 배경 화면이 녹화가 시작된 후 표시됨) >> 녹화 작동 후 'Stop Recording'오디오를 저장하고 재생할 수 있습니다.

    3. [실패 사례] 7 분 동안 '녹화 시작'끄기 (예 : 앱이 기기 화면 끄기로 백그라운드에서 실행 중임) >> 화면 꺼짐과 함께 7 분 후 화면이 켜지면 기기에 암호가 필요합니다. 예기치 않게 녹화가 중지되고 손상된 경우 재생할 수 없습니다.

  • 암호 잠금 (아이폰 5/iOS8.1> 설정> 암호> 요구 후 15 분 패스 코드>)

    1. [반복-실패-CASE를 조정 Passlock으로] '녹화 시작' 7 분 동안 화면 끄기 (예 : 앱이 기기 화면 꺼짐 상태에서 백그라운드에서 실행 중임) >> 화면 꺼짐 상태에서 7 분이 지나면 기기가 켜집니다 (이번에는 암호 잠금이 필요 없음). 녹음은 정상이며 완벽하게 작동하며 재생할 수 있습니다. 실패-CASE 및 반복-실패-CASE 사이

유일한 차이점은 필요하지 않은 화면 잠금 암호입니다.

[주] 같은 문제를 아이폰 4/5/6에 엑스 코드 6.1, 미니시오 미터 (iOS8.1)를 사용하여 테스트

  1. .
  2. 코드와 유사한 AVAudioSession 설정과 표준 AVAudioRecorder 코드 : http://www.jacopretorius.net/2013/04/record-and-playback-audio-in-ios.html

..

는 정보 희망이 도움이 지점에 도착하는 시행 착오를 많이했다.

누구든지이 문제가 발생 했습니까? 그것의 아주 이상한. 어쩌면 아이폰 OS에 의해 보호됩니다

감사 (샌드 박스)

답변

1

오디오 파일 암호 잠금; 화면은 암호 설정없이 잠겨있는 경우 는 모든 것이 괜찮습니다,

는 아래 시도해보십시오.

 NSDictionary *oldAttr = [[NSFileManager defaultManager]attributesOfItemAtPath:localFilePath error:nil]; 
     NSMutableDictionary *newAttr = nil; 
     if (oldAttr){ 
      newAttr = [[NSMutableDictionary alloc]initWithDictionary:oldAttr]; 
     }else{ 
      newAttr = [[NSMutableDictionary alloc]init]; 
     } 
     [newAttr setObject:NSFileProtectionNone forKey:NSFileProtectionKey]; 
     [[NSFileManager defaultManager] setAttributes:newAttr 
             ofItemAtPath:localFilePath 
               error:nil]; 

을 또는 종료 증명서에 데이터 보호를 설정

+0

남자는 u는 내 생명의 은인 .... 덕분에이 문제의 원인을 찾아왔다. Apple은 날마다 점점 더 심해지고 있으며, 문제가 무엇인지 설명하는 로그 메시지조차 없었습니다. – Nav