SwiftUI-如何播放保存在iCloud中的音频文件

时间:2020-02-06 16:10:25

标签: swift swiftui avplayer avaudioplayer icloud

我正在使用SwiftUI开发iOS应用程序,该应用程序基本上是在录制音频文件并将其保存在iCloud中。我可以在iPhone上打开“文件”应用程序,进入应用程序文件夹,然后打开并播放文件,没有任何问题。 我的问题是我无法在应用程序中播放文件。我在调试器中没有错误,但听不到任何声音。 这是我尝试过的简单代码:

                var audioPlayer: AVAudioPlayer!

                do {
                    audioPlayer = try AVAudioPlayer(contentsOf: transcribeFile.filePath!)
                    try AVAudioSession.sharedInstance().setActive(true)
                    audioPlayer.prepareToPlay()
                    audioPlayer.play()
                } catch {
                    print("error: cannot play file")
                }

                if audioPlayer.isPlaying {
                    print("play audioplayer")
                }

这是另一个也不起作用的(:

        let requiredAssetKeys = [
            "playable"
        ]

        let asset  = AVURLAsset(url: transcribeFile.filePath!)
        print("time: \(TimeInterval(CMTimeGetSeconds(asset.duration)))")
        let item   = AVPlayerItem(asset: asset, automaticallyLoadedAssetKeys: requiredAssetKeys)
        let player = AVPlayer(playerItem: item)

        player.automaticallyWaitsToMinimizeStalling = true
        try? AVAudioSession.sharedInstance().setActive(true)
        try? AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])

        player.play()

        switch player.timeControlStatus {
        case .waitingToPlayAtSpecifiedRate:
            print("wait: \(player.reasonForWaitingToPlay!)")
        case .playing:
            print("playing")
        case .paused:
            print("paused")
        }

第二个代码仍然停留在.waitingToPlayAtSpecifiedRate

文件路径如下所示: 文件:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~devX~TranscribeRecord/Documents/2020-02-06/13-54-34.m4a

提前谢谢!

0 个答案:

没有答案