Question

J'ai construit une application qui lit beaucoup de sons facilement:

AudioServicesPlaySystemSound(someSoundID);

Lorsque j'utilise les boutons de volume de l'appareil pour augmenter ou diminuer le volume, le volume que je change réellement correspond au volume de la sonnerie du téléphone. Donc, si vous le diminuez et quittez l'application, votre téléphone sonnera doucement ...

Existe-t-il un moyen simple de remplacer ce paramètre et de modifier le volume de mon application?

Était-ce utile?

La solution

J'ai trouvé la solution à ce que je pensais être un problème commun. Voici comment votre application peut avoir son propre volume et ne pas modifier le volume de la sonnerie de l'utilisateur, même si vous ne jouez que des sons en tant que sons système.

Vous devez importer le cadre AVFoundation et, dans un objet restant chargé tout au long du fonctionnement de votre application (ou de son affichage, ou de son délégué), initialisez un AVAudioPlayer, attribuez-lui un fichier à lire et définissez-le sur " prepareToPlay " ça ...

Voici ce que j'ai fait dans ma vue principale (utilisée pour charger d'autres vues en tant que sous-vues): dans le fichier d'en-tête:

#import <AVFoundation/AVFoundation.h>

@interface MainViewController : UIViewController {
    AVAudioPlayer *volumeOverridePlayer;
}

@property (nonatomic, retain) AVAudioPlayer *volumeOverridePlayer;

Dans le fichier d'implémentation:

    @synthesize volumeOverridePlayer;

- (void)viewDidLoad
{
    [super viewDidLoad];

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

Laissez le lecteur prêt à lire votre fichier et profitez de votre propre contrôle du volume sans avoir à jouer les sons à travers! Et bien sûr, n'oubliez pas de le publier dans dealloc.

Autres conseils

D'après ce que je peux voir dans la documentation d'Apple, il y a deux problèmes ici. 1. L'application et le volume système d'exploitation / matériel ne peuvent être contrôlés que par le matériel / l'utilisateur. 2. Vous jouez un son système. Je crois que le son du système est régi par le système d’exploitation. Vous n’êtes donc pas chanceux, à moins que vous ne lisiez de véritables fichiers son. Si vous pouvez utiliser des fichiers audio, consultez ici .

Bonne chance!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top