Ошибка ошибки : Исключение в 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