使用似有api调整音量大小,后台也能使用方法!

求解使用似有api,可以在后台控制声音的方法,下面是我用普通方法获取的,在后台可以得到声音大小,但是改变不了,使用

  • (void)setVolume:(float)newVolume
    app过一会就挂了,求解?

  • (float)volume
    {
    return [MPMusicPlayerController applicationMusicPlayer] volume];
    }

  • (void)setVolume:(float)newVolume
    {
    [MPMusicPlayerController applicationMusicPlayer] setVolume:newVolume];
    }

MPMusicPlayerController貌似是负责播放器的类,我不确定从SpringBoard以外的进程中调用是否成功。
我大概看了一下,SpringBoard里的这个类有点可疑:

@interface VolumeControl : NSObject
+(id)sharedVolumeControl;
-(void)decreaseVolume;
-(void)increaseVolume;
@end

进一步看了一下,在SpringBoard里的话,可以通过

VolumeControl *control = [VolumeControl sharedVolumeControl];
[control _changeVolumeBy:[control volumeStepUp]]; // increase volume
[control _changeVolumeBy:-[control volumeStepDown]]; // decrease volume

再进一步的话,估计就可以在任意进程里调用了,大概是用到了AVSystemController类和changeActiveCategoryVolumeBy:这个系列方法来达到更改音量的目的,具体的看书学IDA,然后看IDA

我用得AVSystemController

把你最后成功的实现分享一下啊,造福大家