volume da campainha Override em aplicativos para iPhone
-
06-07-2019 - |
Pergunta
Eu construí um aplicativo que reproduz muitos dos sons o caminho mais fácil:
AudioServicesPlaySystemSound(someSoundID);
Quando eu use os botões de volume do dispositivo para aumentar ou diminuir o volume, o volume I, na verdade, a mudança é o volume da campainha do telefone. Então, se você diminuí-lo e sair do aplicativo, em seguida, o telefone irá tocar tranquilamente ...
Existe uma maneira fácil de substituir este e realmente alterar o volume do meu aplicativo?
Solução
Eu encontrei a solução para o que eu pensei que seria um problema comum. Então aqui está como seu aplicativo pode ter seu próprio volume, e não mexer com o volume do toque do usuário, mesmo se você está apenas jogando sons como sons do sistema.
Você tem que importar o quadro AVFoundation e em um objeto que estadias carregado o tempo todo suas corridas aplicativo (ou vista, ou o delegado app) você tem inicializar um AVAudioPlayer, dar-lhe um arquivo para jogar e defini-lo como "prepareToPlay "it ...
Isto é o que eu fiz no meu principal Vista (que é usado para carregar outros pontos de vista como subviews): no cabeçalho do arquivo:
#import <AVFoundation/AVFoundation.h>
@interface MainViewController : UIViewController {
AVAudioPlayer *volumeOverridePlayer;
}
@property (nonatomic, retain) AVAudioPlayer *volumeOverridePlayer;
No arquivo de implementação:
@synthesize volumeOverridePlayer;
- (void)viewDidLoad
{
[super viewDidLoad];
volumeOverridePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"something" ofType:@"caf"]] error:nil];
[volumeOverridePlayer prepareToPlay];
//...
}
Basta deixar o jogador preparado para jogar seu arquivo e desfrutar do seu próprio controle de volume sem ter que reproduzir os sons através dele! E, claro, lembre-se de liberá-lo em dealloc.
Outras dicas
Do que eu posso ver na documentação da Apple, há duas questões aqui. 1. Aplicação eo volume OS / hardware só pode ser controlado pelo hardware / usuário. 2. Você está jogando um som do sistema. Eu acredito que o som do sistema é regido pelo sistema operacional, então você está fora de sorte aqui, a menos que você está jogando arquivos de som reais. Se você pode usar arquivos de som, então dê uma olhada aqui .
Boa sorte!