Pergunta

Estou trabalhando no jogo.E eu tenho alguns problemas com sons.

Eu uso sons do sistema para reconhecer um jogador quando ele pressiona um botão.Esses sons respeitam o volume definido por um player, quando outros sons estão tocando (eu uso AVAudioPlayerareia AudioQueuee).Mas quando o som do sistema é apenas para tocar, ele ignora o volume definido pelo player e toca no volume da campainha.

Como forçar os sons do sistema a respeitar um volume definido por um player mesmo quando nenhum outro som é reproduzido?

Foi útil?

Solução

Como seus jogadores (presumo que você se refira às pessoas que jogam) ajustam o volume - por meio do controle de volume do dispositivo ou da interface do aplicativo?Neste último caso, não funcionará, pois os sons do sistema devem sempre tocar no volume do dispositivo.

De acordo com Guia de programação multimídia, "Os sons são reproduzidos no volume de áudio do sistema atual, sem controle de volume programático disponível."

Não sei por que os sons do sistema mudam de volume quando um som do AVAudioPlayer está sendo reproduzido.Se for esse o caso, você pode repetir um som silencioso com AVAudioPlayer quando não estiver reproduzindo outros sons?Caso contrário, eu tentaria reproduzir todos os sons com AVAudioPlayer para que você tivesse controle direto sobre o volume.

Outras dicas

Supondo que você queira dizer que os jogadores estão ajustando o volume usando os botões laterais de volume do dispositivo:

Tive o mesmo problema para fazer com que o SystemSound respeitasse os botões de volume, mas encontrei uma configuração em "Configurações"/"Sons"/"Campainha e alertas"/"Alterar com botões" que estava "DESLIGADA" por padrão.Mudar para "ON" fez funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top