成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

ZLMusic模仿百度音樂應(yīng)用項目源碼

func stopPlayMusic() {
    if (self.isStop == true) {
        self.player.pause()
        btn .setTitle("播放", forState:UIControlState.Normal)
        //var paused = player.currentTime
        self.songImageView.layer.speed = 0.0
         
    }else{
        self.player.play()
        btn .setTitle("暫停", forState:UIControlState.Normal)
        self.songImageView.layer.beginTime = player.currentTime
        self.songImageView.layer.speed = 0.1
    }
    isStop = !isStop
   }
   func downloadData(path: NSString,dataHandler: (NSData)->Void){
        var url = NSURL(string: path)
        var request = NSURLRequest(URL: url)
        var mainQueue = NSOperationQueue.mainQueue()
        NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue) {
            (response:NSURLResponse!, data:NSData!, error:NSError!) -> Void in
            var httpResponse = response as NSHTTPURLResponse
            if httpResponse.statusCode == 200 {
               dataHandler(data)
            }
             
        }
 
    }
     
    func downloadSong(path: NSString) {
        self.downloadData(path, dataHandler: { (data: NSData) -> Void in
            self.playSong(data)
        })
    }
    func downloadSongLrc(path: NSString) {
        var lrcPath = "http://ting.baidu.com\(path)"
        self.downloadData(lrcPath, dataHandler: { (data: NSData) -> Void in
            var lrc = NSString(data: data, encoding:NSUTF8StringEncoding)
            var lrcLists = lrc.componentsSeparatedByString("\n") as NSArray
            println("\(lrc)")
            println("\(lrcLists[5])")
            
        })
    }
    func loadSongMessage(id: Int) {
         
        var path = "http://music.baidu.com/data/music/fmlink?type=mp3&rate=1&format=json&songIds=\(id)"
        downloadData(path, dataHandler: { (data: NSData) -> Void in
            var array: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error:nil) as NSDictionary
            var dataDic: NSDictionary = array["data"] as NSDictionary
            var list:NSArray = dataDic["songList"] as NSArray
            var songDic:NSDictionary = list[0] as NSDictionary
            self.currentSong.refreshSong(songDic)
            self.title = self.currentSong.songName
            println("\(songDic)")
            self.playImage(self.currentSong.songPicRadio)
            self.showSongInfo()
            self.downloadSong(self.currentSong.songLink)
            self.downloadSongLrc(self.currentSong.lrcLink)
        })
         
    }
     
    func playImage(path: NSString) {
         
         
        if path == "" {
            self.songImageView.backgroundColor = UIColor.cyanColor()
        }else{
            var url = NSURL(string: path)
            var data = NSData(contentsOfURL: url, options: nil, error: nil)
            var p_w_picpath = UIImage(data: data)
            self.songImageView.p_w_picpath = p_w_picpath
        }
        self.songImageView.contentMode = UIViewContentMode.ScaleAspectFit
        self.songImageView.layer.cornerRadius = self.songImageView.frame.width/2
        self.songImageView.layer.masksToBounds = true
        self.songImageView.userInteractionEnabled = true
        var ges = UITapGestureRecognizer(target: self, action:"tapImageView:")
        self.songImageView.addGestureRecognizer(ges)
         
    }
    func showSongInfo() {
        self.artistName.text = self.currentSong.artistName
        self.songName.text = self.currentSong.songName
        self.timeLabel.text = "00:00"
    }
    func loadSongList() {
        var path = "http://fm.baidu.com/dev/api/?tn=playlist&special=flash&prepend=&format=json&_=1378945264366&id="+String(channel.id)
        downloadData(path, dataHandler: { (data: NSData) -> Void in
            var dic: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error:nil) as NSDictionary
            var list: NSArray = dic["list"] as NSArray
            for dict in list{
                var song = Song()
                song.id = dict["id"] as Int
                self.songList.append(song)
            }
            if self.songList.count != 0 {
                self.currentSong = self.songList[0]
                self.loadSongMessage(self.currentSong.id)
            }
 
       })
    }
 
    func doAnimation() {
        var animation = CABasicAnimation(keyPath: "transform.rotation.z")
        animation.toValue = NSNumber(double: 2.0*M_PI)
        animation.duration = 1.5
        animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
        animation.removedOnCompletion = false
        animation.cumulative = false
        animation.repeatCount = FLT_MAX
        self.songImageView.layer.addAnimation(animation, forKey: "AnimatedKey")
        self.songImageView.layer.speed = 0.1
    }
     
    func tapImageView(sender:UITapGestureRecognizer){
        self.stopPlayMusic()
    }
        override func viewDidLoad() {
        super.viewDidLoad()
        //self.title = channel.title
        loadSongList()
        self.view.backgroundColor = UIColor(red: 218/255.0, green: 225/255.0, blue: 230/255.0, alpha: 1)
        println("\(channel.id)")
    }
    override func viewWillDisappear(animated: Bool) {
        timer.invalidate()
        self.songImageView.stopAnimating()
        player.stop()
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
     
     func AudioPlayerDidFinishPlaying(player: AVAudioPlayer!, successfully flag: Bool) {
        timer.invalidate()
        self.songImageView.layer.speed = 0
        self.songImageView.stopAnimating()
        var index = self.currentIndex + 1
        loadSongWithIndex(index)
}


創(chuàng)新互聯(lián)建站-云計算及IDC服務(wù)提供商,涵蓋公有云、IDC機房租用、綿陽機房托管、等保安全、私有云建設(shè)等企業(yè)級互聯(lián)網(wǎng)基礎(chǔ)服務(wù),服務(wù)熱線:13518219792

這個項目是一個比較不錯的ZLMusic模仿百度音樂應(yīng)用,也是采用Swift開發(fā)的百度音樂電臺,基本模仿了現(xiàn)實中的百度音樂應(yīng)用功能了,支持播放功能,上首歌,下一首個,以及歌曲分類等。

項目×××:http://code.662p.com/view/9375.html

  • ZLMusic模仿百度音樂應(yīng)用項目源碼

    運行截圖

  • ZLMusic模仿百度音樂應(yīng)用項目源碼

    運行截圖

  • ZLMusic模仿百度音樂應(yīng)用項目源碼

    運行截圖

  • 詳細(xì)說明:http://ios.662p.com/thread-2239-1-1.html

文章標(biāo)題:ZLMusic模仿百度音樂應(yīng)用項目源碼
文章來源:http://jinyejixie.com/article22/podejc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作、虛擬主機網(wǎng)站設(shè)計、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
肇州县| 石家庄市| 扬州市| 皋兰县| 黄浦区| 阜宁县| 克东县| 凤城市| 尖扎县| 钦州市| 凤凰县| 新野县| 绥芬河市| 西青区| 漾濞| 宣恩县| 景东| 湖州市| 岗巴县| 蚌埠市| 沽源县| 衡东县| 通辽市| 利川市| 东阿县| 疏勒县| 铁岭市| 静安区| 德化县| 宁安市| 界首市| 将乐县| 平湖市| 潜江市| 杭州市| 文水县| 华池县| 宕昌县| 衡东县| 诸暨市| 汉中市|