1

我正在使用 react-native-track-player 创建一个音乐应用程序。我可以自定义通知区域和锁屏播放器吗?

我需要做的是更改背景颜色并将自定义主题添加到通知区域和锁定屏幕播放选项。有人可以让我知道该怎么做吗?

以下是我用来启用轨道播放器选项的代码。我怎样才能修改它来完成上述任务?或者是否有任何其他方法来执行自定义。太感谢了。

const setUpTrackPlayer = async () => {
  try {
    await TrackPlayer.setupPlayer();
    await TrackPlayer.add(audioClipsArray); 
    await TrackPlayer.updateOptions({
      stopWithApp: true, 
      capabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
        Capability.Stop,
      ],
      compactCapabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
      ],
      notificationCapabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
      ],
    });
  } catch (e) {
    console.log(e);
  }
};

4

2 回答 2

1

一些定制是可能的。

您可以更改通知中的背景颜色和图标,如下所述:http: //react-native-track-player.js.org/documentation/#player-functions

您还可以为每个轨道指定艺术品,它将很好地用作通知背景图像。

以上所有也会影响锁屏通知。示例用法:

const audioClipsArray = [{
    title: "Title",
    artist: "Artist",
    url: "./path/to/track.mp3",
    artwork: "./path/to/artwork.jpg"
}];

const setUpTrackPlayer = async () => {
  try {
    await TrackPlayer.setupPlayer();
    await TrackPlayer.add(audioClipsArray); 
    await TrackPlayer.updateOptions({
      stopWithApp: true, 
      capabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
        Capability.Stop,
      ],
      compactCapabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
      ],
      notificationCapabilities: [
        Capability.Play,
        Capability.Pause,
        Capability.SkipToNext,
        Capability.SkipToPrevious,
      ],
      // Obviously, color property would not work if artwork is specified. It can be used as a fallback.
      color: 99410543
    });
  } catch (e) {
    console.log(e);
  }
};
于 2022-02-11T12:38:53.423 回答
0

至少现在你不能用 javascript 来做,因为这个模块没有提供任何方法来定制它。为此,您需要更改本机文件才能对其进行自定义。你也可以看看https://github.com/invertase/notifee看看你能不能让它和track player一起工作。

于 2022-02-09T21:26:42.287 回答