Swift如何实现音乐播放,后台播放及控制。

原创 2015年11月21日 13:06:34

播放音乐

首先,创建一个项目MediaDemo。
导入所需要的包

import AVFoundation
import MediaPlayer

定义一个播放器的变量

var audioPlayer: AVAudioPlayer?

添加查找播放源的代码

 let path = NSBundle.mainBundle().pathForResource("music", ofType: "mp3")
        let pathURL=NSURL(fileURLWithPath: path!)

        do {
            audioPlayer = try AVAudioPlayer(contentsOfURL: pathURL)
        } catch {
            audioPlayer = nil
        }

缓冲音乐

audioPlayer?.prepareToPlay()

在页面上加创建两个按钮play,pause(没做约束)

 let playbtn = UIButton()
        playbtn.frame = CGRectMake(60 , 200, 100, 40)
        playbtn.backgroundColor = UIColor.cyanColor()
        playbtn.setTitle("play", forState: .Normal)
        playbtn.setTitleColor(UIColor.whiteColor(), forState: .Normal)


        let pausebtn = UIButton(frame: CGRectMake(180 , 200, 100, 40) )
        pausebtn.setTitle("pause", forState: .Normal)
        pausebtn.setTitleColor(UIColor.whiteColor(), forState: .Normal)
        pausebtn.backgroundColor = UIColor.cyanColor()
        self.view.addSubview(playbtn)
        self.view.addSubview(pausebtn)

给两个按钮加上监听,实现播放和暂停功能。

 playbtn.addTarget(self, action: "play", forControlEvents: .TouchUpInside)
 pausebtn.addTarget(self, action: "pause", forControlEvents: .TouchUpInside)
    func play(){
        audioPlayer.play()
    }

    func pause(){
        audioPlayer.pause()
    }

这样音乐就可以播放啦。

后台播放及控制

首先在info.list中需要添加下面这条信息
在info.list中添加

在viewload中添加,这句话要添加在audioPlayer.play()之前

       do {
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord)
            try AVAudioSession.sharedInstance().setActive(true)
        } catch {

        }

下面这句话是为了在锁屏界面显示信息,及控制面板

UIApplication.sharedApplication().beginReceivingRemoteControlEvents()

设置锁屏界面

 func setLockView(){
        MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = [
// 歌曲名称
MPMediaItemPropertyTitle:"第一夫人",
// 演唱者
MPMediaItemPropertyArtist:"张杰",
// 锁屏图片
MPMediaItemPropertyArtwork:MPMediaItemArtwork(image: UIImage(named: "img.jpeg")!),
// 
MPNowPlayingInfoPropertyPlaybackRate:1.0,
// 总时长            MPMediaItemPropertyPlaybackDuration:audioPlayer.duration,
// 当前时间        MPNowPlayingInfoPropertyElapsedPlaybackTime:audioPlayer.currentTime
        ]
    }

viewDidLoad中调用代码

self.setLockView()

添加锁屏远程控制音乐播放代码


    override func remoteControlReceivedWithEvent(event: UIEvent?) {
        switch event!.subtype {
        case .RemoteControlPlay:  // play按钮
            audioPlayer.play()
        case .RemoteControlPause:  // pause按钮
            audioPlayer.pause()
        case .RemoteControlNextTrack:  // next
            // ▶▶ 
            break
        case .RemoteControlPreviousTrack:  // previous
            // ◀◀ 
            break
        default:
            break
        }
    }

源代码:
https://github.com/iancui/MediaDemo.git

Swift - 制作一个在线流媒体音乐播放器(使用StreamingKit库)

在之前的文章中,我介绍了如何使用 AVPlayer 制作一个简单的音乐播放器(点击查看1、点击查看2)。虽然这个播放器也可以播放网络音频,但其实际上是将音频文件下载到本地后再播放的。 本文演示如...
  • yiyihuazi
  • yiyihuazi
  • 2017年06月17日 21:16
  • 1149

Swift - 使用AVPlayer制作一个音乐播放器2(后台播放、操作、图片显示)

在前文中,我介绍了如何使用 AVFoundation 框架来制作一个简单的音频播放器(点击查看)。但这个播放器不支持后台播放,程序退到后台时音乐就会停止播放。 本文接着介绍如何实现后台播放功能。 ...
  • yiyihuazi
  • yiyihuazi
  • 2017年06月17日 21:19
  • 1183

Swift版音乐播放器(简化版)

这几天闲着也是闲着,学习一下Swift的,于是到
  • woaifen3344
  • woaifen3344
  • 2014年10月30日 15:25
  • 7597

iOS 音乐类App必备功能:后台播放、锁屏封面、远程播放控制

http://itony.me/305.html
  • xiaoyuanzhiying
  • xiaoyuanzhiying
  • 2015年05月11日 14:37
  • 4408

iOS音乐后台播放及锁屏信息显示

实现音乐的后台播放,以及播放时,可以控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示...
  • Zsk_Zane
  • Zsk_Zane
  • 2015年08月06日 17:52
  • 8536

iOS开发之 AVAudioPlayer音频播放

1、相关知识点 播放音频可以使用框架 AVFoundation.framework 音效的播放 //1.获得音效文件的路径 NSURL*url= [[NSBundlemainBundle] URL...
  • sunnyboy9
  • sunnyboy9
  • 2016年04月30日 14:35
  • 2985

iOS锁屏页面控制音乐播放

//1、调整音频会话设置,确保应用进入后台或静音开关已开启时音频仍将继续播放 2、锁屏状态下显示媒体信息 3、锁屏上的空间可以控制音频播放#import "ViewController.h" #imp...
  • qq_25639809
  • qq_25639809
  • 2017年03月06日 12:01
  • 1551

14.Swift 播放音频

14 Swift 播放音频Swift 播放音频 AVPlayer AVAudioPlayer MPMoviePlayerViewController AVPlayerViewController Sw...
  • qq_16430735
  • qq_16430735
  • 2015年10月10日 00:07
  • 2586

iOS- 关于AVAudioSession的使用——后台播放音乐

AVAudioSession是一个单例,无需实例化即可直接使用。AVAudioSession在各种音频环境中起着非常重要的作用 •针对不同的音频应用场景,需要设置不同的音频会话分类   1.1A...
  • qingyuan159
  • qingyuan159
  • 2016年11月28日 17:16
  • 1591

swift音乐播放器实现

  • 2016年07月26日 18:16
  • 19.1MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift如何实现音乐播放,后台播放及控制。
举报原因:
原因补充:

(最多只允许输入30个字)