Macのオーディオ入力をコマンドで一撃で切り替える

● switchaudio-osx

https://github.com/deweller/switchaudio-osx

インストール方法

brew install switchaudio-osx

・オーディオ入力デバイスのuidを調べる

SwitchAudioSource -f json -t input -a

・オーディオ出力デバイスのuidを調べる

SwitchAudioSource -f json -t output -a

toggle_mic.sh

#!/bin/bash
# @raycast.schemaVersion 1
# @raycast.title Toggle Audio Input/Output (with Debug)
# @raycast.mode compact
# @raycast.icon 🔄

# === デバイスを設定 MacBook (Built-in)===
BUILTIN_NAME="MacBook (Built-in)"
BUILTIN_INPUT_UID="BuiltInMicrophoneDevice"
BUILTIN_OUTPUT_UID="BuiltInSpeakerDevice"

# === デバイスを設定 USB Microphone ===
USB_NAME="USB Microphone"
USB_INPUT_UID="AppleUSBAudioEngine:GeneralPlus:USB Audio Device:132000:2"
USB_OUTPUT_UID="AppleUSBAudioEngine:GeneralPlus:USB Audio Device:132000:1"

# === 切り替え前の現在のデバイス表示 ===
echo "=== BEFORE ==="
CURRENT_INPUT=$(SwitchAudioSource -t input -c)
CURRENT_OUTPUT=$(SwitchAudioSource -t output -c)
echo "Input:  $CURRENT_INPUT"
echo "Output: $CURRENT_OUTPUT"
echo "=== BEFORE ==="
echo ""

# === 現在の入力デバイスUID取得(jq使用) ===
CURRENT_INPUT_UID=$(SwitchAudioSource -t input -c -f json | jq -r '.uid')

echo "Current Input($CURRENT_INPUT_UID)"
echo ""

# === トグルロジック ===
if [[ "$CURRENT_INPUT_UID" == *"$USB_INPUT_UID"* ]]; then
  # USBからBuilt-inへ
  echo "→ Switching to $BUILTIN_NAME..."
  SwitchAudioSource -t input -u "$BUILTIN_INPUT_UID"
  SwitchAudioSource -t output -u "$BUILTIN_OUTPUT_UID"
  echo "✅ Switched to $BUILTIN_NAME (Mic/Speaker)"
else
  # Built-inからUSBへ
  echo "→ Switching to $USB_NAME..."
  SwitchAudioSource -t input -u "$USB_INPUT_UID"
  SwitchAudioSource -t output -u "$USB_OUTPUT_UID"
  echo "✅ Switched to $USB_NAME (Input/Output)"
fi

# === 切り替え後の確認 ===
echo ""
echo "=== AFTER ==="
NEW_INPUT=$(SwitchAudioSource -t input -c)
NEW_OUTPUT=$(SwitchAudioSource -t output -c)
echo "Input:  $NEW_INPUT"
echo "Output: $NEW_OUTPUT"
echo "=== AFTER ==="

実行

sh toggle_mic.sh

No.252
02/03 09:26

edit