kare
(kare)
1
求解使用似有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