You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python检测Linux系统音视频播放状态(附Windows实现方案)

检测系统是否正在播放音视频(Python实现)

Linux系统实现方案

Linux下可通过查询PulseAudio的音频会话状态判断是否有正在播放的音视频,核心是调用pacmd命令解析输出:

import subprocess
import re

def is_audio_playing_linux():
    try:
        # 调用pacmd获取所有音频输入会话状态
        result = subprocess.run(
            ["pacmd", "list-sink-inputs"],
            capture_output=True,
            text=True,
            check=True
        )
        # 匹配处于RUNNING状态的会话
        running_pattern = re.compile(r'state: RUNNING')
        return running_pattern.search(result.stdout) is not None
    except subprocess.CalledProcessError:
        # 处理命令执行失败(如未安装PulseAudio)的情况
        return False

函数返回True代表存在正在播放的音频会话,反之返回False。

Windows系统实现方案

Windows下可借助pycaw库访问系统音频会话,检测活跃播放状态:

  1. 先安装依赖库
pip install pycaw
  1. 编写检测代码
from pycaw.pycaw import AudioUtilities, ISimpleAudioVolume

def is_audio_playing_windows():
    sessions = AudioUtilities.GetAllSessions()
    for session in sessions:
        volume = session._ctl.QueryInterface(ISimpleAudioVolume)
        # 排除静音会话,检查活跃播放状态
        if session.Process and not volume.GetMute():
            session_state = session.GetState()
            if session_state == 1:  # 1对应AudioSessionStateActive(活跃播放)
                return True
    return False

函数遍历所有音频会话,返回True代表存在非静音的活跃播放会话。

内容的提问来源于stack exchange,提问作者code by Abhishek Bharti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:20:23