iOS: Accessing device hardware audio volume control

后端 未结 2 1550
长发绾君心
长发绾君心 2020-12-15 12:55

I have implemented this streamer(https://github.com/DigitalDJ/AudioStreamer) inside my app and it runs fantastic, however it doesn\'t have volume controls implemented, anyon

相关标签:
2条回答
  • 2020-12-15 13:16

    make sure you add the MediaPlayer framework to your project

    you have to define a view in your .h file to put the slider in in this case "viewVolume"

    INFO: THIS WONT WORK IN A SIMULATOR ONLY ON A REAL DEVICE.

    #import <MediaPlayer/MediaPlayer.h>
    
    - (void)showTheVolumeSlider {
    
        MPVolumeView *volumeViewSlider = [[MPVolumeView alloc] initWithFrame:viewVolume.bounds] ;
        [viewVolume addSubview:volumeViewSlider];
        [volumeViewSlider sizeToFit];
    
    }
    

    this code is using ARC.

    this code wil also work:

    musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
        musicPlayer.volume = slider.value;
    

    but if you want to use this you have to make an system that updates the slider as the volume of the device is adjusted from an other place

    this wil work for updating the volume but i don't know if it's the best way

      timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(updateSound) userInfo:nil repeats:YES];
    

    this to update the UISlider:

    - (void)updateSound {
    
        musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
        slider.value = musicPlayer.volume;
        // value from 0.0 to 1.0
    
    }
    
    0 讨论(0)
  • 2020-12-15 13:37

    You can use MPVolumeView. This gives you a UISlider that controls the volume.

    0 讨论(0)
提交回复
热议问题