React Native と React Native Soundを使用してオーディオ プレーヤーを作成していますが、現在いくつかの問題に直面しています。私の問題は、現在再生中の曲を停止して次の曲を再生したいのですが、これを行う方法がわかりません。これが私のコードです:
React、React Native、React Native Sound を使用しています。
export default class PlaySound extends Component {
constructor(props) {
super(props);
this.state = {
stop: false,
playing: false
};
this.stopTrack = () => {
if(!this.state.playing){
return;
}
this.setState({ stop: false });
this.state.playing.stop();
}
}
renderTrackButton(track){
if(this.state.stop){
return (
<Button danger onPress={() => this.stopTrack()}>
<Text>Stop</Text>
</Button>
);
}else{
return (
<Button onPress={() => this.playTrack(track)}>
<Text>Play</Text>
</Button>
);
}
}
playTrack = (track) => {
const callback =(error, sound) => {
if(error) throw error;
this.setState({ stop: true, playing: sound });
sound.play();
}
const sound = new Sound(track.url, error => callback(error, sound));
}
render() {
console.log(this.state);
return (
<Container>
<Header>
<Text style={{ color:'white', fontWeight:'bold', marginTop:15 }}>Play Sound Demo</Text>
<Right>
<Icon name="heart" />
</Right>
</Header>
<Content>
{tracks.map((track) => (
<Card key={track.chinese}>
<CardItem>
<Body>
<Text>{track.pinyin}</Text>
<Text>{track.chinese}</Text>
</Body>
<Right>
{this.renderTrackButton(track)}
</Right>
</CardItem>
</Card>
))}
</Content>
</Container>
);
}
}
AppRegistry.registerComponent('PlaySound', () => PlaySound);