下载的音频文件到文件管理器需要从本地路径播放

问题描述 投票:0回答:1

我在音频播放器应用程序的工作,并且还我有一个离线下载选项,当用户点击下载按钮就应该开始下载并保存到本地。我一直在使用文件管理器URLSession保存它。

我曾尝试采取分离的目标网址。我使用的是点唱机第三方播放歌曲。示例文件位置是

文件:///var/mobile/Containers/Data/Application/BBB9AF1C-D87C-4C40-9F29-AD89062A20E2/Documents/05-KARMA-YOGA.mp3

if let audioUrl = URL(string: audioTobedownloaded) {
            // then lets create your document folder url
            let documentsDirectoryURL =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
            // lets create your destination file url
            let destinationUrl = documentsDirectoryURL.appendingPathComponent(audioUrl.lastPathComponent)
            print(destinationUrl)

实际的事情是我应该怎么玩,我在文件管理器下载的音频。

ios swift download nsfilemanager
1个回答
0
投票
func findFilesWith(extensionType: String) -> [URL]{
        var matches = [URL]()
        let fileManager = FileManager.default

        let files = fileManager.enumerator(atPath: NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0])
        // *** this section here adds all files with the chosen extension to an array ***
        for item in files!
        {
            let fileURL = item as! URL

            if (fileURL.pathExtension == extensionType)
            {
                matches.append(fileURL)
            }
        }
        return matches
    }

您可以使用此方法来获取各种文件与相应的扩展类型。

在你的情况下使用MP3作为扩展类型

试试下面的方法从获取URL播放音频

func play(url:URL) {
        print("playing \(url)")

        do {
            let player = try AVAudioPlayer(contentsOf: url)
            player.prepareToPlay()
            player.volume = 1.0
            player.play()
        } catch let error as NSError {
            print(error.localizedDescription)
        } catch {
            print("AVAudioPlayer init failed")
        }

    }
© www.soinside.com 2019 - 2024. All rights reserved.