当前位置: 首页 > 面试题库 >

检测音量按钮按下

应俊爽
2023-03-14
问题内容

未调用音量按钮通知功能

码:

func listenVolumeButton(){
    // Option #1
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "volumeChanged:", name: "AVSystemController_SystemVolumeDidChangeNotification", object: nil)
    // Option #2
    var audioSession = AVAudioSession()
    audioSession.setActive(true, error: nil)
    audioSession.addObserver(self, forKeyPath: "volumeChanged", options: NSKeyValueObservingOptions.New, context: nil)
}

override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
    if keyPath == "volumeChanged"{
        print("got in here")
    }
}

func volumeChanged(notification: NSNotification){
   print("got in here")
}

listenVolumeButton() 在viewWillAppear中被调用

"got in here"无论哪种情况,代码都不会到达print语句。

我正在尝试两种不同的方法来做到这一点,但都没有用。

我已遵循以下步骤:检测iPhone的音量按钮按下了吗?


问题答案:

使用第二种方法,密钥路径的值应为"outputVolume"。那就是我们正在观察的财产。因此将代码更改为

var outputVolumeObserve: NSKeyValueObservation?
let audioSession = AVAudioSession.sharedInstance()

func listenVolumeButton() {
    do {
        try audioSession.setActive(true)
    } catch {}

    outputVolumeObserve = audioSession.observe(\.outputVolume) { (audioSession, changes) in
        /// TODOs
    }
}


 类似资料:
  • 假设有几个以编程方式创建的按钮,并且有一个通用的按钮处理程序。 如何理解处理器内部哪个按钮被按下? 而不在函数调用中传递一些特殊的东西。那不行:< code > onButtonClicked(" button " I); 例如,在JavaScript中,在处理程序内部有< code>$(this),它可以立即“理解”按下了哪个按钮。 也许在颤振中也有类似的机制?我想在按钮上挂起属性(事先不知道哪

  • 我已经创建了一个webview应用程序。按音量键时,我的应用程序崩溃。这是logcat中的错误 W/ViewRootImpl[MainActivity]:由于没有窗口焦点而取消事件:KeyEvent{action=action\u UP,keyCode=keyCode\u VOLUME\u DOWN,scanCode=114,metaState=0,flags=0x28,repeatCount=0

  • 我想知道在多个按钮的列表中按下了哪个按钮。例如,如果按下了第二个按钮,则代码会检测到按下第二个向下的按钮,并返回类似于 。但是,我不知道该怎么做。当我搜索时,jQuery参与其中,但我没有使用jQuery。代码如下: 我尝试使用EventListner,通过将EventListner添加到创建的每个按钮,但这并不能区分单个按钮。请注意,每个按钮都有一个id为和一个类。 如果有人能帮忙,谢谢!

  • 问题内容: 我需要检测是否在UITableViewController中单击了按钮 问题答案: Swift中最简单,最有效的方法是回调闭包。 子类,用于标识UI元素的 viewWithTag 方法已过时。 将自定义单元格的类设置为子类的名称,然后在Interface Builder 中将标识符设置为。 添加一个属性。 添加一个动作并将按钮连接到该动作。 } 在回调分配到自定义单元格。 } 当按下按

  • 问题内容: 在HTML中,我通过此代码创建一个音频按钮 它可以正常工作,但是在reactjs中,我在下面使用三个文件,并且该文件与html具有相同的路径,但是代码无法正常工作,因此我得到了一个空白网站。对不起,我的英语不好。index.html Test.js index.js 问题答案: 在反应期望功能。但是,当您这样做时,它会返回一个值。将onClick定义更改为 码: 例如,您还需要一个捆绑

  • 我是Android新手。我正在尝试制作一个应用程序,它将在后台运行,并检测三次快速按下电源按钮。我查阅了很多资料,但无法澄清我的困惑。谁能给我一些建议吗?蒂亚。