我使用了react-native-track-player版本^2.0.0-rc13 (最新版本),也使用了react-native-webview "7.5.2",因为我需要使用一个youtube直播视频。
问题是,当收音机播放时,我试着把播放youtube streming视频,收音机继续播放
有什么解决方案吗?收音机怎么能停下来呢?
这是youtube直播视频的代码:
return (
<WebView
style={style || null}
source={{ uri: videoUrl }}
scrollEnabled={false}
/>
)这里是暗号电台
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>
);
}
}发布于 2019-12-11 00:07:31
我解决了这个问题,只是添加了视频的返回
render(){
TrackPlayer.addEventListener('remote-duck', () => { TrackPlayer.destroy() });
return (
<WebView
style={style || null}
source={{ uri: videoUrl }}
scrollEnabled={false}
/>
)
}https://stackoverflow.com/questions/59161169
复制相似问题