无法在我的音乐播放器应用上播放音乐

Posted

技术标签:

【中文标题】无法在我的音乐播放器应用上播放音乐【英文标题】:Can not get music to play on my music player app 【发布时间】:2017-06-04 23:56:20 【问题描述】:

我正在尝试为我的学校项目制作一个音乐播放器应用程序。

当我运行该应用程序时,一切正常,除了当我点击一首歌曲时它不播放。

请帮我详细解释一下,以便我修复应用程序。

代码如下:

import UIKit
import AVFoundation

var songs:[String] = []
var audioPlayer = AVAudioPlayer()

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource 

    @IBOutlet weak var myTabelView: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    
        return songs.count
    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    
        let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
        cell.textLabel?.text = songs[indexPath.row]
        return cell
    

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
    

        do
        
            if let audioPath = Bundle.main.path(forResource: songs[indexPath.row], ofType: ".mp3") 
                try audioPlayer = AVAudioPlayer(contentsOf: NSURL(fileURLWithPath: audioPath) as URL)
            
         catch 
            print(error.localizedDescription)
        
    



    override func viewDidLoad()
    
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        gettingSongName()
    

    override func didReceiveMemoryWarning()
    
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    



    func gettingSongName()  // Get the names of all the songs
    
         let folderUrl = URL(fileURLWithPath: Bundle.main.resourcePath!)

        do
        
            let songPath = try FileManager.default.contentsOfDirectory(at: folderUrl, includingPropertiesForKeys: nil, options: .skipsHiddenFiles) // Axcess all of the song files

            for song in songPath
            
                var mySong = song.absoluteString


                if mySong.contains(".mp3")
                
                    let findString = mySong.components(separatedBy: "/")
                    mySong = (findString[findString.count-1])
                    mySong = mySong.replacingOccurrences(of: "%20", with: " ")
                    mySong = mySong.replacingOccurrences(of: ".mp3", with: " ")
                    songs.append(mySong)

                
            

            myTabelView.reloadData()
        
        catch
        

        

    



【问题讨论】:

【参考方案1】:

您只是在初始化 audioPlayer 而不要求它播放,请尝试在 audioPlayer 初始化之后将其添加到您的 didSelectRow 块中

audioPlayer.prepareToPlay()
audioPlayer.volume = 1.0
audioPlayer.play()
audioPlayer.delegate = self

【讨论】:

以上是关于无法在我的音乐播放器应用上播放音乐的主要内容,如果未能解决你的问题,请参考以下文章

android - 如何在我的音乐播放器中从文件管理器播放 mp3 文件?

如何将音乐从我的应用程序切换到 ipod

如何控制我的音乐播放器耳机?

在我的所有活动中播放背景音乐,并且仅在我的应用未显示时才停止

从文件管理器播放音乐文件到我的音乐播放器

Android - 如何在应用程序内保持音乐播放?