Skip to content

itchyny/volume-go

Repository files navigation

volume-go

CI Status Go Report Card MIT License release pkg.go.dev

Cross-platform audio volume control library for Go language

This is a Go language package for controlling audio volume.

volume command

Homebrew

brew install itchyny/tap/volume

Build from source

go install github.com/itchyny/volume-go/cmd/volume@latest

Basic usage

 $ # Get the current audio volume.
 $ volume get
20

 $ # Set the audio volume.
 $ volume set 40
 $ volume status
volume: 40
muted: false

 $ # Increase/decrease the audio volume.
 $ volume get
40
 $ volume up
 $ volume get
46

 $ volume down
 $ volume get
44

 $ # Get current audio volume status.
 $ volume status
volume: 20
muted: false

 $ # Mute and unmute.
 $ volume mute
 $ volume status
volume: 20
muted: true

 $ volume unmute
 $ volume status
volume: 20
muted: false

Package usage

package main

import (
	"fmt"
	"log"

	"github.com/itchyny/volume-go"
)

func main() {
	vol, err := volume.GetVolume()
	if err != nil {
		log.Fatalf("get volume failed: %+v", err)
	}
	fmt.Printf("current volume: %d\n", vol)

	err = volume.SetVolume(10)
	if err != nil {
		log.Fatalf("set volume failed: %+v", err)
	}
	fmt.Printf("set volume success\n")

	err = volume.Mute()
	if err != nil {
		log.Fatalf("mute failed: %+v", err)
	}

	err = volume.Unmute()
	if err != nil {
		log.Fatalf("unmute failed: %+v", err)
	}
}

Bug Tracker

Report bug at Issues・itchyny/volume-go - GitHub.

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.