Detect if silent/mute switch is enabled/disabled on iOS device
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
Example Updated example project files Nov 14, 2018
Mute Update to swift 4.2. Nov 14, 2018
.gitignore Initial commit Sep 8, 2017
.swift-version Updated Swift version Nov 14, 2018
LICENSE Added Mute lib Sep 8, 2017
Mute.podspec Version 0.4.0 Nov 14, 2018 Update Sep 7, 2018
_Pods.xcodeproj Initial commit Sep 8, 2017


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.


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


import UIKit
import Mute

class ViewController: UIViewController {

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

    override func 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




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

pod 'Mute'


Akram Hussein,


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