2

react-native-track-player在 Android 上运行react-native 应用程序时,通知中心(MIUI 12 上的小米设备中的通知中心和控制中心)变得迟钝。在我看来,玩家试图在通知中心打开某些东西但失败并一遍又一遍地重试。我在设置中检查了我的应用信息,我看到了以下内容:

图片

我认为管理 Android 中的远程控制选项存在问题。我不知道项目的 Android 端发生了什么,因为我是一名 react-native 开发人员,但它似乎试图将音乐的元信息和控制选项作为通知发送,这会导致严重的性能问题。

我在各种安卓设备上测试时遇到了这个问题:

  • 运行 Android 10 的小米 a2 lite
  • 运行Android 10的小米红米note8 Pro
  • 运行 Android 10 的三星 A31

这就是我初始化播放器的方式:

function NewPlayer() {
 const events = [
   Event.PlaybackTrackChanged,
   Event.PlaybackQueueEnded,
   Event.PlaybackError,
   Event.RemotePause,
   Event.RemoteNext,
   Event.RemotePrevious,
   Event.RemotePlay,
   Event.RemotePause,
   Event.RemoteStop,
   Event.RemoteSeek,
   Event.RemoteDuck,
 ];
 useTrackPlayerEvents(events, event => {
   switch (event.type) {
     case Event.RemoteDuck:
       pauseSong();
       break;
     case Event.PlaybackError:
       console.warn(
         'An error occured while playing the current track.',
         event,
       );
       break;
     case Event.RemoteNext:
       playNextSong();
       break;
     case Event.RemotePrevious:
       playPrevSong();
       break;
     case Event.RemotePlay:
       playSong();
       break;
     case Event.RemotePause:
       pauseSong();
       break;
     case Event.RemoteStop:
       pauseSong();
       break;
     case Event.RemoteSeek:
       TrackPlayer.seekTo(event.position);
       break;
     default:
   }
 });

 useEffect(() => {
   // Initialize
   TrackPlayer.setupPlayer({
     iosCategory: IOSCategory.Playback,
     // iosCategoryOptions:
     iosCategoryMode: IOSCategoryMode.Default,
   });
   TrackPlayer.updateOptions({
     stopWithApp: true,
     capabilities: [
       Capability.Play,
       Capability.Pause,
       Capability.SkipToNext,
       Capability.SkipToPrevious,
       Capability.Stop,
       Capability.SeekTo,
     ],
     compactCapabilities: [Capability.Play, Capability.Pause],
   });
 }, []);
 return null;
}

我正在使用react-navigationv5,我的播放器在项目的根目录中实例化:

<Provider store={store}>
      <PersistGate persistor={persistor}>
        <SafeAreaProvider>
          <StatusBar barStyle="light-content" />
          <RootStack authContext={authContext} />
          <NewPlayer />
        </SafeAreaProvider>
      </PersistGate>
</Provider>

提示我也在GitHub 上报告了这个问题:

我该如何解决这个问题?

4

0 回答 0