如何在react-native中以锁定屏幕/后台状态显示媒体控件

时间:2019-06-30 17:50:17

标签: react-native android-mediaplayer react-native-android avaudioplayer react-native-ios

我正在做本机项目。我正在播放一些从服务器获取的网络网址。它是单人游戏。

因此,要播放音频,我正在使用以下库。

https://www.npmjs.com/package/react-native-sound-player

我已经根据我的UI自定义了播放器控件。音频播放效果很好,而且我在设置中启用了在后台模式下播放音频。

但是,如果我进入前台/锁定屏幕状态,则播放音频,但媒体控件未显示。

我是本机新手,是否还需要针对背景/锁屏状态自定义媒体控件?还是我需要做些什么来实现这一目标?

  componentDidMount() {
  const { audioURL } = this.state;
  SoundPlayer.playUrl(audioURL);
  }

    playPauseHandler = () => {
    const {
      paused, currentDuration, currentTime, audioSelectedIndex,
    } = this.state;
    console.log('currentDuration', currentDuration);
    console.log('currentTime', currentTime);
    this.getInfo();

    if (paused === true) {
      SoundPlayer.play();
      this.setState({ paused: !paused });
    } else {
      SoundPlayer.pause();
      this.setState({ paused: !paused });
    }
  }

       render() {

          return (

            <View style={styles.audioPlayerContainer}>
              <Image
                style={styles.podcastImage}
                source={{ uri: podcastImage }}
              />
              {/* <Text> {playTime} </Text> */}

              <View style={styles.sliderCloseButtonContainer}>
                <Slider
                  maximumValue={totalLength}
                  step={1}
                  value={currentTime}
                  onSlidingComplete={value => this.onValueChange(value)}
                  style={styles.slider}
                  thumbTintColor=“blue”
                // onSeek={this.seek.bind(this)}
                  trackLength={totalLength}
                // onSlidingStart={() => this.setState({ paused: true })}
                />
              </View>
              <View style={styles.stylesContainer}>
                  {title}
                </TextTicker>
                <TouchableWithoutFeedback onPress={this.playPauseHandler}>
                  <View style={styles.playButton}>
                    <Image source={paused ? res.images.play : 
                   res.images.pause} />
                  </View>
                </TouchableWithoutFeedback>
              </View>
            </View>
            )
            }
         );
      }

enter image description here

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

有一个本机模块(一种过时的),但仍在工作:

react-native-music-control