首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-native-track-player在播放视频时不会停止

react-native-track-player在播放视频时不会停止
EN

Stack Overflow用户
提问于 2019-12-04 00:14:12
回答 1查看 1.3K关注 0票数 0

我使用了react-native-track-player版本^2.0.0-rc13 (最新版本),也使用了react-native-webview "7.5.2",因为我需要使用一个youtube直播视频。

问题是,当收音机播放时,我试着把播放youtube streming视频,收音机继续播放

有什么解决方案吗?收音机怎么能停下来呢?

这是youtube直播视频的代码:

代码语言:javascript
复制
 return (
        <WebView
          style={style || null}
          source={{ uri: videoUrl }}
          scrollEnabled={false}
        />
      )

这里是暗号电台

代码语言:javascript
复制
export default class LiveRadio extends Component {

  state = {
    scrollY: new Animated.Value(0),
    uri: require('@images/live.png'),
  }



  radio = async () => {
    // Creates the player
    TrackPlayer.setupPlayer().then(async () => {

      // Adds a track to the queue
      await TrackPlayer.add({
        id: 'trackId',
        url: 'url',
        title: 'Radio',
        artist: 'Radio',
        artwork: require('@assets/logo.png'),
        // type: 'hls',
      });
      await TrackPlayer.play();
    });

  }


  _onStop = async () => {
    TrackPlayer.stop();
  };

  play() {
    this.radio()

  }

  pause = async () => {
    TrackPlayer.pause();
  }

  playPause() {
    if (this.state.isplaying == true) {
      this.setState({
        //imageURL : '@images/pause.png',
        isplaying: false

      })
      this.pause()
    }

    if (this.state.isplaying == false) {
      this.setState({
        //imageURL : '@images/pause.png',
        isplaying: true

      })
      this.play()
    }

  }

  // volume(val) {
  //   TrackPlayer.setVolume(val);
  // }



  render() {
    const PLAY_RADIO = require('@images/play.png');
    const PAUSE_RADIO = require('@images/pause.png');
    const STOP_RADIO = require('@images/stop.png');
    const NEXT_IMG = require('@images/next.png');
    const BACK_IMG = require('@images/back1.png');

    return (
      <View >
        <AnimatedHeader image={Images.logo} scrollY={this.state.scrollY} />
        <LinearGradient
          style={styles.linearGradient}
          colors={['rgb(59, 118, 212)', 'rgb(0, 0, 0)' ]}
        >
            <View>

              <View style={{
                alignItems: 'center'
              }}>
                <Image style={{
                  margin: 20,
                  height: 100,
                  width: 70,
                  overflow: "hidden", tintColor: '#FFF'
                }} source={require('@images/microphone.png')} />
              </View>


              <View style={{ alignItems: 'center', }}>
                <View style={{ margin: 20, alignItems: 'center', flexDirection: 'row' }}>
                  <Image style={styles.imgArrow}
                    source={
                      BACK_IMG
                    } />

                  <TouchableOpacity onPress={() => this.playPause()}>
                    <Image style={styles.img}
                      source={
                        this.state.isplaying
                          ? PAUSE_RADIO
                          : PLAY_RADIO
                      }
                    />
                  </TouchableOpacity>

                  <Image style={styles.imgArrow}
                    source={
                      NEXT_IMG
                    } />
                </View>


              </View>


            </View>


        </LinearGradient>


      </View>
    );
  }



}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-11 00:07:31

我解决了这个问题,只是添加了视频的返回

代码语言:javascript
复制
render(){
TrackPlayer.addEventListener('remote-duck', () => { TrackPlayer.destroy() }); 
return (
        <WebView
          style={style || null}
          source={{ uri: videoUrl }}
          scrollEnabled={false}
        />
      )
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59161169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档