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

能否结合react-native-track-player与react-native-video实现锁屏显示视频标题和缩略图?

解决react-native-video与react-native-track-player搭配时锁屏信息不显示的问题

核心原因

react-native-video和react-native-track-player会抢占系统媒体会话控制权,同时使用时,前者会覆盖后者的媒体元数据配置,导致锁屏界面无法加载标题和缩略图。

具体解决步骤

  • 禁用react-native-video的媒体会话控制
    在Video组件中添加disableFocus属性并设为true,阻止它抢占媒体会话:
    <Video
      source={{ uri: '你的视频地址' }}
      disableFocus={true}
      // 其他原有配置项
    />
    
  • 用react-native-track-player统一管理媒体元数据
    播放视频前,通过track-player初始化播放器、配置元数据并添加播放队列:
    import TrackPlayer from 'react-native-track-player';
    
    // App启动时初始化播放器
    await TrackPlayer.setupPlayer();
    await TrackPlayer.updateOptions({
      capabilities: [
        TrackPlayer.Capability.Play,
        TrackPlayer.Capability.Pause,
      ],
    });
    
    // 设置视频元数据并加入队列
    await TrackPlayer.add({
      id: 'video-id',
      url: '你的视频地址',
      title: '目标视频标题',
      artwork: '缩略图地址(本地路径或远程链接)',
    });
    
    // 启动播放
    await TrackPlayer.play();
    
  • 同步两者的播放状态
    监听track-player的播放状态变化,同步控制react-native-video的播放/暂停:
    // 监听播放状态
    TrackPlayer.addEventListener('playback-state', async (state) => {
      if (state.state === TrackPlayer.STATE_PLAYING) {
        videoRef.current?.play();
      } else if (state.state === TrackPlayer.STATE_PAUSED) {
        videoRef.current?.pause();
      }
    });
    
  • Android端额外配置
    确保AndroidManifest.xml中添加媒体控制权限,且MainApplication.java正确注册TrackPlayer模块(按官方文档配置即可)。

注意事项

  • 缩略图优先使用本地资源或稳定的远程链接,避免加载失败导致锁屏界面仍空白。
  • 需在真机上测试,模拟器的锁屏媒体控件可能存在兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:12:05