我目前正在使用 Swift
测试将AVPlayer与音频流URL一起使用。有play()和pause()方法,但是问题在于,仅暂停,流仍会缓存在设备中。
这是我的测试代码:
import UIKit
import AVFoundation
class ViewController: UIViewController {
let player = AVPlayer(URL: NSURL(string: "http://streaming.radio.rtl.fr/rtl-1-48-192")!)
@IBOutlet weak var btnPlay: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnPress(sender: AnyObject) {
if (btnPlay.titleLabel?.text == "Play") {
initPlayer()
btnPlay.setTitle("Stop", forState: UIControlState.Normal)
} else {
stopPlayer()
btnPlay.setTitle("Play", forState: UIControlState.Normal)
}
}
func initPlayer() {
player.play()
}
func stopPlayer() {
// player.currentItem = nil // Last thing I tried, but generate an error
player.pause()
}
}
这是尝试某些东西时的问题:
player = nil
:“无法将’NilLiteralCOnvertible’类型的值分配给’AVPlayer’类型的值”
player.currentItem = nil
:“无法分配给属性:’currentItem’是仅获取属性”
我尝试了所有操作,即使通过AVQueuePlayer也没有任何有效结果。(显然,因为我的情况下只有一件)。
如何 停止AVPlayer 或 销毁其实例 ?
如果声明player
为可选变量,则可以将播放器设置nil
为取消分配它。
愚蠢的例子,但它显示了会发生什么:
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var btnPlay: UIButton!
var player:AVPlayer?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btnPress(sender: AnyObject) {
if (btnPlay.titleLabel?.text == "Play") {
initPlayer()
btnPlay.setTitle("Stop", forState: UIControlState.Normal)
} else {
stopPlayer()
btnPlay.setTitle("Play", forState: UIControlState.Normal)
}
}
func initPlayer() {
if let play = player {
print("playing")
play.play()
} else {
print("player allocated")
player = AVPlayer(URL: NSURL(string: "http://streaming.radio.rtl.fr/rtl-1-48-192")!)
print("playing")
player!.play()
}
}
func stopPlayer() {
if let play = player {
print("stopped")
play.pause()
player = nil
print("player deallocated")
} else {
print("player was already deallocated")
}
}
}
我正在制作一个基于体素的游戏,为了它的需要,我正在创建一个块渲染引擎。 重点是,我需要生成很多立方体。每次我渲染超过16x16x16块的theese块时,我的FPS几乎都会下降,因为它渲染了所有theese立方体的所有6个面。那是24576个四边形,我不想要。 所以,我的问题是,如何停止渲染不可见的顶点(或四边形),从而提高我的游戏性能? 以下是用于渲染块的类: 下面是呈现它们的代码:
问题内容: 我正在尝试使用Linux下的ProcessBuilder类将mp3文件解码为wav文件。由于某些原因,该过程不会停止,因此我必须手动取消它。 有人可以给我一个提示。我认为引用的代码很容易重现: jstack的输出 问题答案: 您需要清空进程的输出(通过)和错误(通过)流,否则可能会阻塞。 引用过程文档: 由于某些本机平台仅为标准输入和输出流提供有限的缓冲区大小,因此未能及时写入子流程的
我有Visual Studio 2013,没有插件或任何花哨的东西。每当我编码时,每隔一段时间(可能每半小时一次),intellisense就会随机停止完成我的句子,或者在我按下Ctrl键时弹出。 我试过工具- 现在唯一能解决这个问题的就是关闭VS并重新打开它。但正如你所能想象的,这是非常令人沮丧的。
问题内容: 单击导航中的每个链接,我正在播放一个小型音频剪辑 HTML代码: JS代码: 到目前为止,一切正常。 问题是,当声音剪辑已经在运行时,我单击任何链接都不会发生任何事情。 我尝试停止单击链接时已经播放的声音,但是HTML5的音频API中没有直接的事件 我尝试了以下代码,但无法正常工作 有什么建议吗? 问题答案: 相反,您可以尝试: 这应该具有预期的效果。
我正试图按照下面的代码读取一个txt文件: 我的txt文件如下所示: 当我不使用变量I时,仅用于在控制台打印我的文件,我的代码可以完美地工作。你们能帮我吗?如何将每个数据分离到数组中?我是Java初学者。
问题内容: 我想停止redis服务器,并且它一直在运行。我正在使用redis-2.6.7 检查它是否正在运行: 它显示“ … bind:地址已在使用中”,因此它已在运行。 我努力了 它只是挂起,没有任何反应。我中断检查,是的,它仍在运行。 我努力了 我得到“无法打开配置文件’停止’” 我试过了: 仍在运行。 我想要停止它的原因是,当我尝试通过Python设置或获取值时,它只是挂起了。所以我认为我会