我在检测有人何时按下音量调高按钮时遇到问题。目前,我只是播放文件,但我想知道用户何时按下按钮以在音量变化时显示警报。我正在开发Swift,并且正在使用AVFoundation创建此播放器。目前,我找不到适用于Swift的东西。我是这种语言的新手。
import UIKit
import AVFoundation
class ViewController: UIViewController {
var backgroundMusicPlayer = AVAudioPlayer()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
playBackgroundMusic("IronBacon.mp3")
}
func playBackgroundMusic(filename:String){
let url = NSBundle.mainBundle().URLForResource(filename, withExtension: nil)
print(url)
guard let newUrl = url else{
print("couldn't find file: \(filename)")
return
}
do{
backgroundMusicPlayer = try AVAudioPlayer(contentsOfURL: newUrl)
backgroundMusicPlayer.numberOfLoops = -1
backgroundMusicPlayer.prepareToPlay()
}catch let error as NSError{
print(error.description)
}
}
@IBAction func playPauseAction(sender: UIButton) {
sender.selected = !sender.selected
if sender.selected {
backgroundMusicPlayer.play()
} else {
backgroundMusicPlayer.pause()
}
}
func ShowAlert(title: String, message: String, dismiss: String) {
let alertController = UIAlertController(title: title, message:
message, preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: dismiss, style: UIAlertActionStyle.Default,handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
}
func volumeUp(){
ShowAlert( "example", message: "example", dismiss: "close")
}
func volumeDown(){
ShowAlert( "example", message: "example", dismiss: "close")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
这应该可以解决问题。
class ViewController: UIViewController {
// MARK: Properties
let notificationCenter = NSNotificationCenter.defaultCenter()
// MARK: Lifecycle
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
notificationCenter.addObserver(self,
selector: #selector(systemVolumeDidChange),
name: "AVSystemController_SystemVolumeDidChangeNotification",
object: nil
)
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
notificationCenter.removeObserver(self)
}
// MARK: AVSystemPlayer - Notifications
func systemVolumeDidChange(notification: NSNotification) {
print(notification.userInfo?["AVSystemController_AudioVolumeNotificationParameter"] as? Float)
}
}
问题内容: 我知道这个答案已经以其他形式发布在这里,但是我想了解更多有关迅速覆盖实例变量的信息。 假设我有这段代码 好。从我读到的内容来看,常量需要覆盖前缀。其他答案说我应该声明setter和getter?为什么?我真的不在乎这两个。我只需要替换值即可。我真的不能使用重写,因为我是从UIView继承的,这可能很危险(我认为)。 任何建议都欢迎。 问题答案: 如您所说,您不能简单地在子类中重新定义常
问题内容: 我正在尝试使用NSLocalizedString本地化我的应用程序。当我导入XLIFF文件时,大多数工作都像一个超级按钮,但是有些却没有,有些字符串没有本地化。我注意到问题出在NSLocalizedString中,其中包含一些变量,例如: 要么 也许这不是这类东西的正确语法。有人可以向我解释如何迅速做到这一点?非常感谢你。 问题答案: 您可以在中使用format参数,因此您的示例如下所
问题内容: 有什么方法可以在python中每次变量值更改时调用函数? 像听众一样吗? 具体来说,我指的 是 像GAE-Session这样的脚本之间 仅共享变量 的情况 。(使用Cookie,Memcache等共享数据) 示例:ScriptA和ScriptB,共享一个会话变量。当脚本B进行更改时,SctiptA必须调用一个方法来处理该更改。 问题答案: 使用属性。首先,可变值可以更改。
问题内容: 未调用音量按钮通知功能。 码: 在viewWillAppear中被调用 无论哪种情况,代码都不会到达print语句。 我正在尝试两种不同的方法来做到这一点,但都没有用。 我已遵循以下步骤:检测iPhone的音量按钮按下了吗? 问题答案: 使用第二种方法,密钥路径的值应为。那就是我们正在观察的财产。因此将代码更改为
问题内容: 我试图设置一个变量,该变量位于该闭包内部的闭包外部,但最终不会被设置。然而,我设置变量的值 是 正在打印到控制台。同样,在设置返回变量并自行打印之后,将正确的值打印到控制台。当我返回变量时就会出现问题。其值与初始化时的值相同。这是一些伪代码: 这是不起作用的实际代码: 问题答案: .observeSingleEvent正在异步工作。 您可以执行以下操作: 然后,您可以在任何需要的地方使
使用光环板制作一个音量检测计,通过光环板的麦克风检测音量大小,并通过可视化的形式呈现出来,音量越大,LED灯环亮起的灯就越多。 1. 从事件类积木拖取一个 当按钮被按下时 积木。 2. 从控制类积木拖取一个 重复执行 积木。 3. 从灯光类积木拖取一个 显示LED环形图()% 积木,再添加一个传感器类积木 麦克风 响度。 4. 试着拍下桌子,看光环板LED环形图的变化吧! 下载代码