2016-04-21 3 views
0

Ich habe eine UISlider zu meiner App hinzugefügt und ich versuche herauszufinden, wie man die Lautstärke der Musikwiedergabe ändern. Die wiedergegebene Musik wird aus der iTunes-Bibliothek mit MPMusicPlayerControllerLautstärke ändern mit einem Schieberegler in Swift 2

gezogen. Hier ist die ViewDidLoad-Funktion mit um zu zeigen, wie ich die Musik aus der iTunes Music-Bibliothek bekommen.

var musicPlayer = MPMusicPlayerController() 

override func viewDidLoad() { 
     super.viewDidLoad() 

     musicPlayer = MPMusicPlayerController.systemMusicPlayer() 


     //Changing the Play/Pause Button 
     if musicPlayer.playbackState == MPMusicPlaybackState.Playing { 

      playPauseButton.setImage(UIImage(named: "Pause"), forState: UIControlState.Normal) 

      //Artwork 
      let currentItem: MPMediaItem = musicPlayer.nowPlayingItem! 

      let artwork: MPMediaItemArtwork = currentItem.valueForProperty(MPMediaItemPropertyArtwork) as! MPMediaItemArtwork 
      let artworkImage = artwork.imageWithSize(CGSize(width: self.view.frame.width, height: 372.0)) 
      musicPlayerArtwork.image = artworkImage 
      musicBottomBackground.image = artworkImage 

      //Titel 
      let titleString: String = currentItem.valueForProperty(MPMediaItemPropertyTitle) as! String 
      songTitle.text = titleString as String 

      //Artist & Album 
      let artistString: String = currentItem.valueForProperty(MPMediaItemPropertyArtist) as! String 
      let albumString: String = currentItem.valueForProperty(MPMediaItemPropertyAlbumTitle) as! String 
      albumAndArtistTitle.text = "\(artistString) - \(albumString)" 


     } else { 

      playPauseButton.setImage(UIImage(named: "Play"), forState: UIControlState.Normal) 

     }   


    } 

// I have IBAction functions linked to controlling the playbackk and pause functions that look like this one to play the music 
func startPlayMusic() { 

     if self.musicPlayer.playbackState == MPMusicPlaybackState.Paused { 

      self.musicPlayer.play() 

     } 

    } 

Ich habe den Slider mit einem IBAction und IBOutlet angeschlossen und haben die folgende Funktion die Lautstärke einstellen, um zu versuchen es:

var audioPlayer = AVAudioPlayer() 
@IBAction func volumeSliderChanging(sender: UISlider) { 

     audioPlayer.volume = sender.value 

    } 

Jedes Mal, wenn ich versuche, diese laufen und Bewegen des Schiebers ich das bekommen folgende Fehler

enter image description here

Alle Ideen, was ich falsch machen könnte?

+0

verwenden Sie CoreAnimation mit diesem Wertänderungscode? – HardikDG

Antwort

1

Ihre audioPlayer wurde nicht ordnungsgemäß initiiert. Sie sollten nicht AVAudioPlayer() anrufen. Eine Liste der Initialisierer, die Sie verwenden sollten, finden Sie unter documentation. Hier ein Beispiel:

let url = NSBundle.mainBundle().URLForResource("mySong", withExtension: "mp3")! 
self.audioPlayer = try! AVAudioPlayer(contentsOfURL: url) 
+0

Danke für diese Antwort. Mein Projekt ist der MPMusicPlayerController zum Abspielen der Musik. Gibt es eine Möglichkeit, das Abspielen des Songs zu beeinflussen? – Gugulethu

+0

Ich habe meine Antwort bearbeitet, um zu zeigen, wie die Musik gespielt wird. – Gugulethu

Verwandte Themen