Skip to content
Detect if silent/mute switch is enabled/disabled on iOS device
Swift Ruby
Branch: master
Clone or download

Latest commit

akramhussein Merge pull request #9 from tiagomartinho/master
Upgrade to latest Xcode and Swift version
Latest commit b8466d3 Mar 4, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Support Dark Mode in Example App Mar 3, 2020
Mute Replaced mute.caf with noise-free mute.aiff Sep 24, 2019
.gitignore Initial commit Sep 8, 2017
LICENSE Added Mute lib Sep 8, 2017
Mute.podspec Migrate to Swift 5 Mar 3, 2020
README.md Update README.md Sep 7, 2018
_Pods.xcodeproj Initial commit Sep 8, 2017

README.md

Mute

Version License Platform

There is no native iOS API to detect if the mute switch is enabled/disabled on a device.

The general principle to check if the device is muted is to play a short sound and detect the length it took to play. From this length we can determine if it was muted or not.

This library is effectively a Swift variant of SoundSwitch.

Has a trigger rate of 1 second.

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Usage

import UIKit
import Mute

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel! {
        didSet {
            self.label.text = ""
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Notify every 2 seconds
        Mute.shared.checkInterval = 2.0

        // Always notify on interval
        Mute.shared.alwaysNotify = true

        // Update label when notification received
        Mute.shared.notify = { [weak self] m in
            self?.label.text = m ? "Muted" : "Not Muted"
        }

        // Stop after 5 seconds
        DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
            Mute.shared.isPaused = true
        }

        // Re-start after 10 seconds
        DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
            Mute.shared.isPaused = false
        }
    }

}

Requirements

Installation

Mute is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Mute'

Author

Akram Hussein, akramhussein@gmail.com

License

Mute is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.