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

相关文章推荐

14.Swift 播放音频

14 Swift 播放音频Swift 播放音频 AVPlayer AVAudioPlayer MPMoviePlayerViewController AVPlayerViewController Sw...

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

这几天闲着也是闲着,学习一下Swift的,于是到

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

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

播放无声音乐让后台一直运行

我们项目要求我们是每隔一个小时上传一次地理位置,我试了好几种方法都不成功,只能选择后台循环播放音乐达到后台持续运行...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

iOS语音播放之切换听筒和扬声器的方法解决方案

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; //建议在播放之前设置yes,播放结束设置NO,这个功能是开启红外感应 ...
  • xdrt81y
  • xdrt81y
  • 2014年08月29日 16:04
  • 38859

iOS开发之 AVAudioPlayer音频播放

1、相关知识点 播放音频可以使用框架 AVFoundation.framework 音效的播放 //1.获得音效文件的路径 NSURL*url= [[NSBundlemainBundle] URL...

iOS APP应用程序进入到后台 ,不影响正在运行的后台音乐播放

iOS  APP应用程序进入到后台 ,不影响正在运行的后台音乐播放 1、在   func application(application: UIApplication, didFinis...
  • H_WeiC
  • H_WeiC
  • 2015年03月09日 14:52
  • 2704

iOS开发:AVPlayer实现流音频边播边存【demo为swift】

概述 1. AVPlayer简介 AVPlayer存在于AVFoundation中,可以播放视频和音频,可以理解为一个随身听 AVPlayer的关联类: AVAsset:一个抽象类...
  • wakice
  • wakice
  • 2017年02月20日 09:43
  • 1159

解决关于如何实现锁屏后继续播放音乐的问题

锁屏后继续播放其实就是利用了Audio session这个feature,具体可以看看apple的文档里面关于Audio session的部分,我是用的AVFoundation.framework...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift如何实现音乐播放,后台播放及控制。
举报原因:
原因补充:

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