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

如何配置react-native-trackplayer使iOS端关闭APP时停止播放?

iOS端解决react-native-trackplayer后台播放问题的方案

要实现iOS端关闭APP时停止播放、禁止后台播放的需求,可按以下步骤操作:

1. 修正TrackPlayer的iOS类别配置

将iOS音频类别配置移至updateOptions中(而非setupPlayer),使用SoloAmbient类别确保后台自动暂停:

TrackPlayer.updateOptions({
    android: {
        appKilledPlaybackBehavior: StopPlaybackAndRemoveNotification
    },
    // 新增iOS核心配置
    iosCategory: IOSCategory.SoloAmbient,
    iosCategoryMode: IOSCategoryMode.Default,
    iosCategoryOptions: [],
    progressUpdateEventInterval: 2000,
    color: "#ff35cf07",
    capabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
        Capability.Stop,
    ],
    compactCapabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
        Capability.Stop,
    ]
})

SoloAmbient是iOS默认音频类别,特性为:

  • APP进入后台时自动暂停播放
  • 不允许与其他APP音频同时播放
  • 无需后台音频权限

2. 移除iOS项目的后台音频权限

打开iOS项目的Info.plist文件,删除以下配置(如果存在):

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
</array>

该权限会强制允许APP在后台播放音频,即使TrackPlayer配置了禁止后台模式。

3. 监听APP生命周期,主动停止播放

在主APP组件中监听AppState变化,当APP切换到后台或处于非活跃状态时,主动停止播放并清理队列:

import { AppState } from 'react-native';
import TrackPlayer from 'react-native-track-player';

// 在组件的useEffect中添加监听
useEffect(() => {
    const handleAppStateChange = async (nextAppState) => {
        if (nextAppState === 'background' || nextAppState === 'inactive') {
            await TrackPlayer.stop();
            await TrackPlayer.remove(); // 清理播放队列,彻底停止
        }
    };

    AppState.addEventListener('change', handleAppStateChange);

    return () => {
        AppState.removeEventListener('change', handleAppStateChange);
    };
}, []);

验证步骤

  1. 重新编译iOS项目
  2. 启动APP并开始播放音频
  3. 按Home键将APP切换到后台,确认音频停止
  4. 彻底关闭APP(从多任务栏划掉),确认音频不会继续播放

内容的提问来源于stack exchange,提问作者Sander van Maastricht

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:28:36