2011-10-14 4 views
0

사진을 찍을 수있는 증강 현실 응용 프로그램을 만들고 있습니다. 그것은 내 사용자 정의 함수를 사용하여 UIImage를 만들어 화면을 저장합니다. 일본의 법률에 따라 카메라에는 셔터 음이 있어야하며, 이는 iPhone 카메라가 항상 재생하는 이유입니다. 지금까지는 iPhone이 음소거 된 경우에도 소리를내는 방법을 찾았지만 여전히 사용자가 설정 한 볼륨에 의존합니다. 그래서 MPMusicPlayerController를 사용하여 응용 프로그램 볼륨을 제어하는 ​​방법을 발견했습니다. 이것은 작동하지만 볼륨이 변경되면 볼륨이 변경되었음을 알리는 상자가 나타납니다. 볼륨이없는 iPhone 응용 프로그램 볼륨 변경 (일본의 경우 응용 프로그램)

가 여기에 재생 내 코드 음소거 경우에도 소리 :

AudioSessionInitialize (NULL, NULL, NULL, NULL); 
AudioSessionSetActive(true); 

UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; 
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, 
         sizeof(sessionCategory),&sessionCategory); 

내가 플레이하기 전에 볼륨을 조절 한 다음 소리 (OpenAL에 대한 가벼운 래퍼) 및 MPMusicPlayerController을 재생 라이브러리 핀치를 사용합니다.

appMusicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 
[appMusicPlayer setVolume:0.5f]; 

누구나이 경험이 있거나 일본용 앱을 만들었습니까? 나는 정말 실망 스럽다. 감사.

답변

1

MPVolumeView은 사용자가 실제로 볼 수없는 경우에도 볼 수 있지만 부동 상자를 차단합니다.

일부 샘플 코드 ...

// create/synthesize ivars for "MPVolumeView" and "UIView" (both are necessary) 
// I called them "mpVolumeView" and "mpVolumeViewParentView" respectively 

// the UIView containing the MPVolumeView can have a frame of (0,0,1,1) 
// this way, the user never sees the slider, but it still works normally 

- (void)viewDidLoad { 
    ... 
    // with this, only the slider is visible 
    mpVolumeViewParentView.backgroundColor = [UIColor clearColor]; 

    // initialize the volume slider (link the parent view in IB, or init here) 
    mpVolumeView = [[MPVolumeView alloc] initWithFrame: 
               mpVolumeViewParentView.bounds]; 

    // since it's a programmatic init, the subview must be added like so 
    [mpVolumeViewParentView addSubview:mpVolumeView]; 

    // allows the floating box to appear without destroying mpVolumeView 
    mpVolumeView.hidden = YES; // or [mpVolume setHidden:YES]; if you prefer 
    ... 
} 

...

mpVolumeView.hidden = NO; // view visible, box doesn't appear 

그리고 소리 후, 그래서 당신은 아무것도 엉망 것처럼 보이지 않는

...

사운드를 만들기 위해 카메라를 강제로 볼륨을 변경하기 전에
mpVolumeView.hidden = YES; // view hidden, box appears 

원하는 것을 얻으려면 약간의 조정이 필요할 수 있지만 좋은 시작이어야합니다. g 점.

이 코드는 iOS 5.1입니다.
호환 가능성은 이전 버전과 다릅니다.