문제

쉽게 사운드를 많이하는 앱을 만들었습니다.

AudioServicesPlaySystemSound(someSoundID);

장치 볼륨 버튼을 사용하여 볼륨을 높이거나 줄이면 실제로 변경되는 볼륨은 전화의 벨소리입니다. 따라서 앱을 줄이고 앱을 종료하면 휴대 전화가 조용히 울립니다 ...

이것을 무시하고 실제로 내 응용 프로그램의 볼륨을 변경하는 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

나는 일반적인 문제라고 생각한 것에 대한 해결책을 찾았습니다. 따라서 시스템 사운드로 사운드 만 재생하더라도 앱의 자체 볼륨을 가질 수있는 방법이 있습니다.

avfoundation 프레임 워크를 가져 와야하고 앱이 실행되는 시간 내내로드 된 객체 (vaudioplayer를 초기화하거나 앱 대의원)를 유지하고 재생할 파일을 제공하고 "준비"로 설정했습니다. ..

이것이 제가 메인 뷰에서 한 일입니다 (다른 뷰를 하위 뷰로로드하는 데 사용됨)는 헤더 파일에서 :

#import <AVFoundation/AVFoundation.h>

@interface MainViewController : UIViewController {
    AVAudioPlayer *volumeOverridePlayer;
}

@property (nonatomic, retain) AVAudioPlayer *volumeOverridePlayer;

구현 파일에서 :

    @synthesize volumeOverridePlayer;

- (void)viewDidLoad
{
    [super viewDidLoad];

    volumeOverridePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"something" ofType:@"caf"]] error:nil];
    [volumeOverridePlayer prepareToPlay];
//...
}

플레이어가 파일을 재생할 준비를하고 그 소리를 통해 사운드를 재생하지 않고도 자신의 볼륨 컨트롤을 즐기십시오! 물론 Dealloc에서 공개하는 것을 잊지 마십시오.

다른 팁

Apple의 문서에서 볼 수있는 것에서 여기에는 두 가지 문제가 있습니다. 1. 응용 프로그램 및 OS/하드웨어 볼륨은 하드웨어/사용자 만 제어 할 수 있습니다. 2. 당신은 시스템 사운드를 재생하고 있습니다. 시스템 사운드는 OS에 의해 관리된다고 생각하므로 실제 사운드 파일을 재생하지 않는 한 여기서 운이 좋지 않습니다. 사운드 파일을 사용할 수 있다면 살펴보십시오. 여기.

행운을 빕니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top