2016-04-21 2 views
0

У меня есть UISlider, добавленный в мое приложение, и я пытаюсь понять, как изменить громкость воспроизведения музыки. Воспроизведение музыки происходит из библиотеки iTunes, используя MPMusicPlayerControllerТом Изменение с помощью слайдера в swift 2

Вот функция viewDidLoad, чтобы показать, как я получаю музыку из библиотеки iTunes Music.

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() 

     } 

    } 

У меня есть ползунок подсоединили с IBAction и IBOutlet и имеют следующую функцию попытаться отрегулировать громкость его:

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

     audioPlayer.volume = sender.value 

    } 

Каждый раз, когда я пытаюсь запустить это и перемещая ползунок я получаю следующая ошибка

enter image description here

Любые идеи, что я мог бы делать неправильно?

+0

Вы используете CoreAnimation с этим кодом изменения стоимости? – HardikDG

ответ

1

Ваш audioPlayer не был инициирован должным образом. Вы не должны звонить AVAudioPlayer(). Обратитесь к documentation за списком инициализаторов, которые вы должны использовать. Вот пример:

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

Спасибо за этот ответ. Мой проект использует MPMusicPlayerController для воспроизведения музыки. Есть ли способ настроить воспроизведение песни? – Gugulethu

+0

Я отредактировал свой ответ, чтобы показать, как воспроизводится музыка. – Gugulethu

Смежные вопросы