Игрок доступен по не той теме. React-National и Expo-VideoAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Игрок доступен по не той теме. React-National и Expo-Video

Сообщение Anonymous »

Я работал с React-Cnival и Exepo-video, чтобы реализовать видео в нижнем листе. Приложение работает, как и ожидалось, но когда я перехожу на Reload Expo, так как я использую свое собственное устройство (Android) для разработки, я получаю ошибку каждый раз, когда перезагружаю: < /p>
Ошибка ошибки : Исключение в hostobject :: get for prop 'NativeUnimoduleproxy': java.lang.illegalStateException: ПЛУЧАТЬ ПЛАВКИ НЕ ВЫКЛ. > См. Https://developer.android.com/guide/top ... ong-thread, JS Engine: Hermes
также:
Ошибка инвариантного нарушения: «Главный» не был зарегистрирован. Это может произойти, если: < /p>

Metro (локальный Dev Server) запускается не в неправильной папке. Проверьте, работает ли Metro, остановите его и перезапустите его в текущем проекте. JS Engine: Hermes < /li>
< /ul>
Как я уже говорил, приложение работает, как и ожидалось, но когда я иду на строительство EAS, это не удалось, и я знаю, что это Из -за этой ошибки. Я искал и гугл и пробовал обновления государства в Runonjs и т. Д., И, безрезультатно, я не могу преодолеть это. Кто -нибудь еще испытал это, и если да, то как вы это решили? или способ решить это. Я вытаскиваю волосы. Кто-нибудь может предложить другие предложения? >

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

 const [volume, setVolume] = useState(0.2);
const [currentTime, setCurrentTime] = useState(0);
const [isPlaying, setIsPlaying] = useState(false);

const navigation = useNavigation();
const ref = useRef(null);

const player = useVideoPlayer(VideoSource, (player) => {
player.loop = false;
});

useEffect(() => {
const videoSubscription = player.addListener(
'playingChange',
(isPlaying) => {
setIsPlaying(isPlaying);
}
);

const onEndVideoSubscription = player.addListener('end', () => {
setIsPlaying(false);
});

return () => {
videoSubscription.remove();
onEndVideoSubscription.remove();
};
}, [player]);

// Set duration when video is loaded
useEffect(() => {
if (player) {
player.volume = volume;
}
}, [volume, player]);

// Update current time periodically
useEffect(() => {
const interval = setInterval(() => {
if (player && player.currentTime) {
setCurrentTime(player.currentTime); // Current playback time in seconds
}
}, 1000);

return () => clearInterval(interval); // Cleanup interval on unmount
}, [player]);

const togglePlay = () => {
if (!isPlaying) {
player.play();
} else {
player.pause();
}
setIsPlaying(!isPlaying);
};

const formatTime = (seconds) => {
const mins = Math.floor(seconds / 60);
const secs = Math.floor(seconds % 60);
return `${mins}:${secs < 10 ? '0' : ''}${secs}`;
};

const handleSliderChange = (value) => {
if (player && length) {
const targetPositionMillis = value * length; // Calculate the target position in milliseconds
const currentPositionMillis = player.currentTime; // Get the current playback position

const difference = targetPositionMillis - currentPositionMillis; // Calculate the difference
player.seekBy(difference); // Seek by the difference in time
setCurrentTime(targetPositionMillis); // Update current time for display
}
};

const handleVolumeChange = (value) => {
player.volume = value;
};

const handleResetVideo = () => {
if (player) {
const currentTime = player.currentTime;
player.seekBy(-currentTime); // Reset to the beginning
player.pause();
setIsPlaying(false);
}
};



Подробнее здесь: https://stackoverflow.com/questions/794 ... expo-video
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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