Загруженный аудиофайл в диспетчер файлов необходимо воспроизвести по локальному пути - PullRequest
0 голосов
/ 06 февраля 2019

Я работаю в приложении аудиоплеера, а также у меня есть опция автономной загрузки, когда пользователь нажимает кнопку загрузки, она должна начать загрузку и сохранить ее на локальном компьютере.Я сохранил его с помощью файлового менеджера URLSession.

Я пытался взять и отделить URL-адрес назначения.Я использую сторонний музыкальный автомат для воспроизведения песни.расположение файла примера

file: ///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)

на самом деле, как мне проигрывать аудио, которое я скачал в файловом менеджере.

1 Ответ

0 голосов
/ 06 февраля 2019
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 в качестве типа расширения

Попробуйте воспроизвести приведенный ниже метод для воспроизведенияаудио с выбранной ссылки

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")
        }

    }
...