本文目录导读:

- 浏览器端 JavaScript
- Python 脚本控制
- Windows 系统级控制(PowerShell)
- Linux 命令行控制
- 智能家居/API 控制
- 快捷键脚本(AutoHotkey)
- 远程控制方案
- 实用建议
我来介绍几种用脚本控制音乐播放的方法,根据不同的使用场景:
浏览器端 JavaScript
控制 HTML5 音频
// 获取音频元素
const audio = document.getElementById('myMusic');
// 播放控制
audio.play(); // 播放
audio.pause(); // 暂停
audio.currentTime = 30; // 跳到30秒处
audio.volume = 0.5; // 设置音量(0-1)
audio.loop = true; // 循环播放
// 播放状态检测
audio.addEventListener('play', () => console.log('开始播放'));
audio.addEventListener('pause', () => console.log('暂停'));
audio.addEventListener('ended', () => console.log('播放完成'));
Python 脚本控制
使用 pygame
import pygame
import time
pygame.mixer.init()
# 加载音乐
pygame.mixer.music.load('song.mp3')
# 播放
pygame.mixer.music.play()
# 控制
pygame.mixer.music.pause() # 暂停
pygame.mixer.music.unpause() # 继续
pygame.mixer.music.stop() # 停止
pygame.mixer.music.set_volume(0.7) # 音量
time.sleep(10) # 播放10秒
pygame.mixer.music.stop()
Windows 系统级控制(PowerShell)
# 添加 Windows Media Player 组件
$player = New-Object -ComObject WMPlayer.OCX
# 控制 Windows 系统音量
Add-Type -TypeDefinition @"
using System.Runtime.InteropServices;
[Guid("5CDF2C82-841E-4546-9722-0CF74078229A"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
interface IAudioEndpointVolume {
[PreserveSig] int f();
int GetVolumeLevel();
int SetVolumeLevel(float level);
}
"@
# 设置系统音量为 50%
$obj = [Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]::new("BCDE0395-E52F-467C-8E3D-C4579291692E")))
Linux 命令行控制
# 使用 mpv mpv --start=30 song.mp3 # 从30秒开始播放 # 使用 mpg123 mpg123 --loop 1 song.mp3 # 循环播放 # 使用 cmus(终端音乐播放器) cmus # 快捷键控制 # c = 播放/暂停 # b = 下一首 # z = 上一首
智能家居/API 控制
控制 Spotify(通过 API)
import spotipy
from spotipy.oauth2 import SpotifyOAuth
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
redirect_uri="http://localhost:8888/callback",
scope="user-modify-playback-state"
))
# 控制播放
sp.start_playback() # 播放
sp.pause_playback() # 暂停
sp.next_track() # 下一首
sp.previous_track() # 上一首
sp.volume(50) # 音量50%
快捷键脚本(AutoHotkey)
; Windows 全局媒体控制
Media_Play_Pause:: ; 播放/暂停键
#W::WinMediaPlayPause ; Win+W 播放/暂停
; 音量控制
^Up::Send {Volume_Up}
^Down::Send {Volume_Down}
; 自定义热键
#Space::
Send {Media_Play_Pause}
Return
远程控制方案
WebSocket 控制
// 服务器端(Node.js)
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
ws.on('message', (message) => {
switch(message.toString()) {
case 'play':
player.play();
break;
case 'pause':
player.pause();
break;
case 'next':
player.next();
break;
}
});
});
实用建议
- 播放列表控制:可以创建 JSON 配置文件管理播放列表
- 定时播放:配合定时任务(cron/task scheduler)实现闹钟功能
- 音频可视化:用 Web Audio API 实现实时频谱分析
- 智能控制:结合语音识别或传感器触发播放
根据你的具体需求(本地/在线、单个/批量、自动化程度)选择合适的方法,需要更详细的某个方案说明吗?