Пуснете максималната сила на звука на speakerPhone и след това нулирайте предишната сила на звука с AVAudioPlayer IOS

Успях да насоча аудиото си към високоговорителя, но той все още не се възпроизвежда с максималната възможна сила на звука. Опитах [audioAlert setVolume:1.0] и все още остава на силата на звука, на която потребителят го е настроил в момента. Ако някой има представа какво правя погрешно, ще съм много благодарен.

Ето моят код:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];

    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

    NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HsTR_soundEFX_2-1" ofType:@"mp3"]];
   audioAlert= [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    audioAlert.delegate = self;
    [audioAlert setVolume:1.0];
    [audioAlert prepareToPlay];
    [audioAlert play];

Благодаря на PaulPerry!

СЕГА РЕШЕНО:

Включих малко допълнително, за да го върна към предишния том, използвайки кода по-долу:

 AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL];

    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

    NSURL* soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HsTR_soundEFX_2-1" ofType:@"mp3"]];
   audioAlert= [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil];
    audioAlert.delegate = self;
    [audioAlert prepareToPlay];
    float maxVolume = 1.0;
    float currentVolume=[MPMusicPlayerController applicationMusicPlayer].volume;
    [[MPMusicPlayerController applicationMusicPlayer] setVolume:maxVolume];
    [audioAlert play];
   //set up timer to wait until audioAlert is finished playing,
   // and then call the line below to set the volume back to it's original setting
    [[MPMusicPlayerController applicationMusicPlayer]setVolume:currentVolume];

person Tommy Devoy    schedule 12.09.2012    source източник


Отговори (2)


Това ще нулира силата на звука за цялата система на максимум.

обем на поплавъка = 1.0; [[MPMusicPlayerController applicationMusicPlayer] setVolume:volume];

person PaulPerry    schedule 13.09.2012
comment
Обемът на MPMusicPlayerController вече е отхвърлен. - person Abdul Yasin; 16.11.2016

Какво ще кажете първо да го инициализирате на 0, а след това веднага след [audioAlert prepareToPlay] да го върнете на 1:

[audioAlert prepareToPlay]
[audioAlert setVolume:1.0]
person Morufu Salawu    schedule 13.09.2012