Видео перестает зацикливаться через несколько часовAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Видео перестает зацикливаться через несколько часов

Сообщение Anonymous »

Я столкнулся с проблемой, когда в моем приложении (которое работает круглосуточно и без выходных) отображается экран входа в систему, через 5–8 часов видео просто исчезает, прежде чем у меня был простой isLooping в моем видеокомпоненте. Обнаружено, что у isLooping есть проблемы при длительных сеансах, и он не такой гибкий, как AVPlaybackStatus, который гораздо более управляем и не является встроенным в отличие от isLooping.
Используя AVPlaybackStatus, видео смогло пережить ночь, поэтому утром оно воспроизводилось, но частота кадров была очень нестабильной.
Есть ли какое-либо другое решение для воспроизведения видео в цикле в течение нескольких часов
Ниже приведен минимальный воспроизводимый код.
Использованные версии:
  • expo: ~48.0.21
  • react: 18.2.0
  • react-native: 0.71.14
Использование expo-av для игры видео.
import React, { useRef, useState } from "react";
import { View, StyleSheet, Text, Pressable } from "react-native";
import {
Video,
ResizeMode,
AVPlaybackStatus,
AVPlaybackStatusSuccess,
} from "expo-av";

export default function App() {
const videoRef = useRef(null);
const [restarting, setRestarting] = useState(false);

const onPlaybackStatusUpdate = (status: AVPlaybackStatus): void => {
const cStatus = status as AVPlaybackStatusSuccess;

if (!restarting && cStatus.isLoaded && cStatus.durationMillis) {
const remaining = cStatus.durationMillis - cStatus.positionMillis;

if (remaining {
if (!videoRef.current) return;

try {
setRestarting(true);
await videoRef.current.stopAsync();
await videoRef.current.unloadAsync();
await videoRef.current.loadAsync(
require("./assets/video.mp4"),
{ shouldPlay: true, isMuted: true },
false
);
await videoRef.current.playAsync();
} finally {
setRestarting(false);
}
};

return (




Restart Video


);
}

const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#000",
},
video: {
width: "100%",
height: "80%",
},
button: {
padding: 20,
backgroundColor: "#222",
alignItems: "center",
},
text: {
color: "#fff",
},
});


Подробнее здесь: https://stackoverflow.com/questions/798 ... fter-hours
Ответить

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

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

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

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

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