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

如何为集成SMTC的媒体播放器设置Windows操作中心的名称与图标

设置Windows媒体传输控制(SMTC)的应用名称与图标

要修改Windows操作中心里SMTC显示的应用名称和图标,核心是通过SystemMediaTransportControlsDisplayUpdater类实现,而非直接操作ISystemMediaTransportControls接口。具体步骤如下:

  • 获取SMTC实例后,调用get_DisplayUpdater()拿到SystemMediaTransportControlsDisplayUpdater对象
  • 设置应用名称:调用DisplayUpdater->set_AppDisplayName(L"你的应用名称")传入自定义名称
  • 设置应用图标:先将本地图标文件转换为RandomAccessStreamReference,再调用DisplayUpdater->set_AppIcon(streamReference)传入图标流
  • 最后调用DisplayUpdater->Update()提交所有更改

具体代码示例(C++/WinRT)

#include <winrt/Windows.Media.Control.h>
#include <winrt/Windows.Storage.Streams.h>

using namespace winrt;
using namespace Windows::Media::Control;
using namespace Windows::Storage::Streams;

void SetSMTCAppInfo(SystemMediaTransportControls smtc)
{
    auto displayUpdater = smtc.DisplayUpdater();
    
    // 设置自定义应用名称
    displayUpdater.AppDisplayName(L"自研媒体播放器");
    
    // 加载本地图标文件并转换为流引用
    auto iconFile = Windows::Storage::StorageFile::GetFileFromPathAsync(L"C:\\YourApp\\Assets\\AppIcon.png").get();
    auto iconStreamRef = RandomAccessStreamReference::CreateFromFile(iconFile);
    displayUpdater.AppIcon(iconStreamRef);
    
    // 提交更新到系统
    displayUpdater.Update();
}

关键细节说明

  • 若使用C++/CX而非WinRT,API调用逻辑一致,仅语法略有差异:比如displayUpdater->AppDisplayName = ref new Platform::String(L"你的应用名称");
  • 图标推荐使用32x32或64x64尺寸的PNG格式,保证在操作中心显示清晰
  • 未主动设置时,Windows会默认复用最近使用SMTC的应用信息,这就是你遇到显示Firefox名称和图标的原因
  • 关于Firefox/Chromium的实现:它们的SMTC名称和图标设置逻辑通常封装在媒体会话初始化的上层代码中,并非直接暴露在你查看的SMTCProvider核心文件里,可排查它们的媒体会话启动流程代码

内容的提问来源于stack exchange,提问作者Codrut

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:24:59