React Native Audio Воспроизведение mp3-файлов с пробелами в их именах - PullRequest
1 голос
/ 05 апреля 2019

Я пытался создать медиаплеер, работающий на родном языке, используя Expo, чтобы иметь возможность проигрывать аудио в моем музыкальном проекте.

Я успешно взломал один с предпочтительным дизайном и т. Д., Но у меня все еще есть небольшая ошибка. Здесь я получаю информацию от конечной точки API со ссылками на файлы, хранящиеся на сервере. эта аудиозапись воспроизводится, когда имя файла всего одно слово. Когда в имени файла есть пробелы, он не воспроизводится. например ... / musics / test.mp3 играет, в то время как ... / musics / test 32.mp3 не играет. Любая идея о том, как решить эту проблему в React native, будет высоко оценена. Моя функция воспроизведения

 startPlay = async (index = this.index, playing = false) => {
        const url = this.list[index].url;
        this.index = index;
        console.log(url);
        // Checking if now playing music, if yes stop that
        if(playing) {
            await this.soundObject.stopAsync();
        } else {
            // Checking if item already loaded, if yes just play, else load music before play
            if(this.soundObject._loaded) {
                await this.soundObject.playAsync();
            } else {
                await this.soundObject.loadAsync(url);
                await this.soundObject.playAsync();
            }
        }
    };

url - ссылка на файл.

Я работаю на потоковой платформе, и мне очень хотелось бы получить игрока, подобного этому:

enter image description here

как то так https://hackernoon.com/building-a-music-streaming-app-using-react-native-6d0878a13ba4

Но я использую выставку React native. Все реализации, с которыми я сталкивался онлайн, используют native без expo. Любые указатели на любую уже проделанную работу с использованием expo будут очень полезны, например, пакеты.

спасибо

1 Ответ

1 голос
/ 06 апреля 2019

URL должны быть закодированы:

const uri = this.list[index].url;
this.index = index;
const url = encodeURI(uri);
console.log(url);

uri = "../musics/test 32.mp3" будет закодировано в url = "../musics/test%2032.mp3"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...