Проблема с воспроизведением пользовательских звуков для реакций в приложении React Native с использованием реакции-nativAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема с воспроизведением пользовательских звуков для реакций в приложении React Native с использованием реакции-nativ

Сообщение Anonymous »

Я работаю над проектом React Native, где пользователи могут назначать собственные звуки реакциям. Эти звуки либо установлены по умолчанию, либо загружены пользователем. Проблема в том, что пути к пользовательским звуковым файлам сохраняются как URI, и при попытке воспроизвести эти звуки они воспроизводятся неправильно. Вот что происходит:
Я могу получить собственный звуковой URI для каждой реакции.
Этот URI указывает на местоположение, например content://com.android.providers. downloads.documents/document/msf%3A1000000034.
Я пытаюсь скопировать этот URI в путь к локальному файлу с помощью реакции-native-fs, а затем передать этот путь в response-native-sound.
При попытке воспроизвести звук журналы консоли указывают, что путь извлекается, но звук не воспроизводится.
Все звуки, как пользовательские, так и по умолчанию, кажутся названо одинаково (что, я считаю, является ключевой проблемой).
Вот соответствующий код:
В SwipeScreen.js (для воспроизведения звука):

Код: Выделить всё

const playSoundForReaction = (reactionKey) => {
const soundFile = reactions[reactionKey]?.customSoundPath || reactions[reactionKey]?.sound;

// Log for troubleshooting
console.log(`Attempting to play sound for reaction: ${reactionKey}`);
console.log(`Custom sound path: ${reactions[reactionKey]?.customSoundPath}`);
console.log(`Sound file to play: ${soundFile}`);

if (soundFile) {
const sound = new Sound(soundFile, (error) => {
if (error) {
console.log('Error loading sound', error);
return;
}
sound.play((success) => {
if (!success) {
console.log('Failed to play sound');
} else {
console.log('Sound played successfully');
}
});
});
} else {
console.log('No sound found for this reaction');
}
};
В ReactionContext.js (для хранения звуковых дорожек):

Код: Выделить всё

const ReactionContext = createContext();
export const ReactionProvider = ({ children }) => {
const [reactions, setReactions] = useState({
risitas: { customSoundPath: 'content://path/to/sound.mp3' },
nice: { customSoundPath: 'content://path/to/sound.mp3' },
crying: { customSoundPath: 'content://path/to/sound.mp3' },
});
};
Проблема:
Пользовательские звуковые пути не работают должным образом. Я получаю журналы, показывающие пути правильно, но звук не воспроизводится. Звуки по умолчанию работают, а пользовательские не работают.
В выводе журнала все звуки имеют одинаковые названия (customSound.mp3), что может быть частью проблемы.
Что я могу сделать? Пробовал:
  • Я использовал реакцию-native-fs, чтобы скопировать URI в локальный путь, и предоставил этот путь для реакции-native-sound.
  • Я проверил пути, чтобы убедиться в их правильности, но пользовательские звуки по-прежнему не воспроизводятся.
  • Я зарегистрировал путь правильно, прежде чем пытаться воспроизвести звук.
Есть ли у кого-нибудь опыт обработки пользовательских URI звука и обеспечения их работы с React-native-sound? Как я могу решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-react-n
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»