React-native
React Native Track Player (앱에서 오디오파일 재생하기)
지후라보노
2023. 4. 27. 09:06
React-Native Track Player
설치
npm install react-native-track-player
or
yarn add react-native-track-player
IOS = cd ios && pod install
사용법
import TrackPlayer from 'react-native-track-player';
// ...
TrackPlayer.setupPlayer().then(() => {
// TrackPlayer를 사용할 준비가 됨
});
TrackPlayer.add({
id: 'trackId', // 재생할 오디오의 아이디 (임의 값)
url: require('path/to/track.mp3'), // 재생할 오디오의 파일
title: 'Track Title', // 재생할 오디오의 타이틀 (제목)
artist: 'Track Artist', // 아티스트 이름
artwork: require('path/to/artwork.png') // 해당 앨범의 이미지
});
setupPlayer()로 준비가 완료되었을 때
TrackPlayer.play(); // 오디오를 재생함
TrackPlayer.pause(); // 중지함
TrackPlayer.skipToNext(); // 다음 트랙으로 넘어감
TrackPlayer.skipToPrevious(); // 이전 트랙으로 감
이벤트리스너 제공
// service.js
module.exports = async function () {
try {
TrackPlayer.addEventListener('remote-play', () => {
TrackPlayer.play()
})
TrackPlayer.addEventListener('remote-pause', () => {
TrackPlayer.pause()
});
TrackPlayer.addEventListener('remote-next', () => {
TrackPlayer.skipToNext()
});
TrackPlayer.addEventListener('remote-previous', () => {
TrackPlayer.skipToPrevious()
});
TrackPlayer.addEventListener('remote-stop', () => {
TrackPlayer.destroy()
});
} catch (error) {
console.error(error, 'eventListener ERROR')
}
}
State (재생에 관련 된 현재의 상태를 가져옴)
const state = await TrackPlayer.getState();
console.log(state); // 상태 값
이름 | 설명 |
---|---|
None | 현재 로드된 미디어가 없음을 나타내는 상태 |
Ready | 플레이어가 플레이를 시작할 준비가 되었음을 나타내는 상태 |
Playing | 플레이어가 현재 재생 중임을 나타내는 상태 |
Paused | 플레이어가 현재 일시 중지되었음을 나타내는 상태 |
Stopped | 플레이어가 현재 정지되었음을 나타내는 상태 |
Buffering | 플레이어가 현재 버퍼링 중임을 나타내는 상태("재생" 상태) |
Connecting | 플레이어가 현재 버퍼링 중임을 나타내는 상태("일시중지" 상태) |