Я хочу воспроизводить треки из локальной файловой системы с помощью React-native-track-player, но при воспроизведении звука не воспроизводится звук. устройство Android, на котором я эмулирую и тестирую. Кроме того, в Metro или React Native Debugger нет обратной связи об ошибках. Если я что-то упускаю, можете ли вы подсказать, как решить эту проблему?
Что я пробовал:
Я пробовал несколько аудиоформатов и локальных каталогов, но все еще не прошел "готовый" PlaybackState в TrackPlayer.addEventListener
- Форматы: AAC, MP3
- Каталоги:
file:///data/user/0/audiopath...
file:///storage/emulated /0/Android/data/audiopath...
file:///storage/emulated/0//Download/audiopath...
Код для воспроизведения:
const Player = ({list}) => {
const [isPlayerReady, setIsPlayerReady] = useState(false);
useEffect(() => {
async function setup() {
let isSetup = await SetupTrackPlayer();
const queue = await TrackPlayer.getQueue();
if (isSetup && queue.length {
list.docs.map(doc => ({
id: docID,
url: file:///data/user/0/audiopath..., //tried other dir as stated above
artwork: file:///data/user/0/imagepath..., //also not loading
title: doc.title,
artist: doc.author,
})),
await TrackPlayer.add(tracks);
await TrackPlayer.setRepeatMode(RepeatMode.Queue);
};
//jsx
};
export async function SetupTrackPlayer() {
let isSetup = false;
try {
await TrackPlayer.getActiveTrackIndex();
isSetup = true;
} catch {
await TrackPlayer.setupPlayer();
await TrackPlayer.updateOptions({
android: {
alwaysPauseOnInterruption: true,
appKilledPlaybackBehavior: AppKilledPlaybackBehavior.ContinuePlayback,
},
capabilities: [
Capability.Play,
Capability.Pause,
Capability.SkipToNext,
Capability.SkipToPrevious,
],
compactCapabilities: [Capability.Play, Capability.Pause],
});
isSetup = true;
} finally {
return isSetup;
}
}
Текущее состояние:
- Я могу подтвердить, что аудиофайлы существуют в каталоги, перечисленные выше, через Android Studio или Проводник.
- TrackPlayer.getActiveTrack() выбирает первый элемент в массиве, переданном в TrackPlayer.add() , но воспроизведения по-прежнему нет.
- Установив RNN и RNGH, я завернул все Просмотр реестров с помощью Navigation.registerComponent() иgestHandlerRootHOC(). Не уверен, есть ли конфликты библиотек, но для RNTP я использовал только TrackPlayer.registerPlaybackService(() => PlaybackService)
OS:Windows 11 10.0.22631
Android:12
Nodeversion:20.11.1
openjdk:11.0.22
react-native:0.72.15
react-native-track-player:4.1.1
audiopathreact-native-navigation:7.35.2
audiopathreact-native-reanimated:3.3.0
audiopathreact-native-gesture-handler:2.11.0
react-native-fs:2.20.0
hermesEnabled:true
newArchEnabled:false
androidmanifest.xml permissions:
Подробнее здесь: https://stackoverflow.com/questions/790 ... hout-error