首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVPlayer没有播放尽管有正确的URL

AVPlayer没有播放尽管有正确的URL
EN

Stack Overflow用户
提问于 2019-12-19 04:10:18
回答 2查看 362关注 0票数 0

我需要代码的帮助,因为我不知道为什么我的AVPlayer不能播放音频。以下是我的职责:

代码语言:javascript
复制
@IBAction func pausePlayAudio(_ sender: CustomButton) {
    let audioSourceURL: String = "[Site]/module_lesson_uploads/audios/"
    let audioString: String = audioSourceURL + (sender.paramaters["thisAudioURL"] as! String)
    let audioURL = URL(string: audioString)

    print(audioString)

    let playerItem: AVPlayerItem = AVPlayerItem(url: audioURL!)
    let audioPlayer = AVPlayer(playerItem: playerItem)

    audioPlayer.play()
}

这里的名称是:

代码语言:javascript
复制
pausePlayButton.addTarget(self, action: #selector(ModuleLessonElementsViewController.pausePlayAudio(_:)), for: .touchUpInside)
pausePlayButton.paramaters["thisAudioURL"] = content

下面是输出传递的字符串的控制台的结果:

代码语言:javascript
复制
[Site]/module_lesson_uploads/audios/228F0E3-1576580339.mp3
2019-12-19 11:54:34.524954+0800 AppUI[3807:70260] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:54:34.688244+0800 AppUI[3807:70259] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:54:34.718316+0800 AppUI[3807:70261] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:54:34.912438+0800 AppUI[3807:70259] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:54:34.913975+0800 AppUI[3807:70259] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
[Site]/module_lesson_uploads/audios/4AB4136-1576647127.mp3
2019-12-19 11:55:04.511064+0800 AppUI[3807:70259] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:55:04.742723+0800 AppUI[3807:70262] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:55:04.795568+0800 AppUI[3807:70262] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:55:05.042987+0800 AppUI[3807:70262] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection
2019-12-19 11:55:05.049440+0800 AppUI[3807:70262] [] nw_endpoint_flow_copy_multipath_subflow_counts Called on non-Multipath connection

它似乎在工作,但音频没有播放。任何帮助或解释都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-19 12:11:07

我检查了您的代码并发现了这样的模式:

  • 如果我在audioPlayer之前定义和初始化viewDidLoad -那么audioPlayer在100%的情况下工作(我使用音频)
  • 如果我像您一样定义和初始化audioPlayer (在pausePlayAudio) --有时起作用,有时不起作用。

请查查这个:

代码语言:javascript
复制
var audioPlayer = AVPlayer()

@IBAction func pausePlayAudio(_ sender: CustomButton) {
    let audioSourceURL: String = "[Site]/module_lesson_uploads/audios/"
    let audioString: String = audioSourceURL + (sender.paramaters["thisAudioURL"] as! String)
    let audioURL = URL(string: audioString)

    print(audioString)

    let playerItem = AVPlayerItem(url: audioURL!)
    self.audioPlayer = AVPlayer(playerItem: playerItem)

    self.audioPlayer.play()
}
票数 0
EN

Stack Overflow用户

发布于 2019-12-19 17:09:25

您的错误是您正在为音频播放器创建一个功能范围实例。它将在执行后立即释放,这就是为什么它不播放的原因。为audioPlayer对象创建一个类变量,并执行相同的操作。一定会成功的。另外,当前您的URL来自服务器,所以请等待几秒钟才能收到足够的缓冲区数据来播放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59403194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档