Can I use a custom slider to manage a volume?

As I know, MPVolumeView can add volume to my application. But now I want to control the volume using a custom slider. Maybe I can fit myself if MPVolume was a subclass of uislider, indeed it is a subclass of uiview. Ask for advice to implement my idea, thank you very much.

+3
source share
6 answers
UIView *a=[[UIView alloc] init];
    for (UIView *view in [volumeSlider subviews]) {
        if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) {
            a=view;
            [(UISlider *)a setThumbImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
            [(UISlider *)a setMinimumTrackImage:[UIImage imageNamed:@"volume2.png"]  forState:UIControlStateNormal];
            [(UISlider *)a setMaximumTrackImage:[UIImage imageNamed:@"volume3.png"] forState:UIControlStateNormal];
    }

    }

which can do what I want, but I really donโ€™t know if he can check apple

+4
source

If you go through the MPVolumeView view hierarchy and discover a UISlider, you can always customize it.

for ( view in theVolumeView.subviews ) {
  if ( [view isKindOfClass:[UISlider class]] ) { ... }
}

, , , , UISlider, . , .

+3

Hummm, , , . Framework, CoreAudio CoreMedia.

MPVolumeView? MPVolumeView @protected @private, . , MPVolumeView, , UISlider ( - ), .

: (2010/07/21)

. -. UIProgressView VolumeView? , , ? , ?

-, MPVolumeView. , MPVolumeViewInternal * _internal; , ( AppStore) _internal var, _internal , , .

Objective-C - drawonward, UISlider . Obj-C - , ;)

+2

UIView MP MediaPlayer , XIB, UIView, MPVolumeView

, .

+1

- MPMusicPlayerController:

MPMusicPlayerController *controller = [MPMusicPlayerController applicationMusicPlayer];
controller.volume = 0.5; // value in [0,1]
0

. xcode 4.6.1

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:volumeSlider.bounds] autorelease];


    UIView *a=[[UIView alloc] init];
    for (UIView *view in [volumeView subviews]) {
        if ([[[view class] description] isEqualToString:@"MPVolumeSlider"]) {
            a=view;
            [(UISlider *)a setThumbImage:[UIImage imageNamed:@"slider_thumb.png"] forState:UIControlStateNormal];
            [(UISlider *)a setMinimumTrackImage:[UIImage imageNamed:@"slider_progress.png"]  forState:UIControlStateNormal];
            [(UISlider *)a setMaximumTrackImage:[UIImage imageNamed:@"slider_bg.png"] forState:UIControlStateNormal];
        }

    }

    [volumeSlider addSubview:volumeView];
    [volumeView sizeToFit];

0

Source: https://habr.com/ru/post/1755245/


All Articles