Как возобновить воспроизведение видеоAndroid

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

Сообщение Anonymous »

У меня есть виджет VideoPlayerItem, который воспроизводит видео и запускает обратный вызов onVideoEnd, когда видео заканчивается. У меня также есть кнопка обновления, которую я хочу использовать для возобновления воспроизведения видео. Как мне это сделать?
videoplayeritem

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

class VideoPlayerItem extends StatefulWidget {
final String videoUrl;
final Function onVideoEnd;
const VideoPlayerItem({super.key, required this.videoUrl,required this.onVideoEnd});

@override
State createState() => _VideoPlayerItemState();
}

class _VideoPlayerItemState extends State {
late VideoPlayerController videoPlayerController;

@override
void initState() {
super.initState();
videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(widget.videoUrl))
..initialize().then((_) {
videoPlayerController.play();
videoPlayerController.setVolume(1);
setState(() {}); // Ensure the UI updates once initialized
});
videoPlayerController.addListener(() {
if (videoPlayerController.value.position >= videoPlayerController.value.duration) {
widget.onVideoEnd();
}
});
}

@override
void dispose() {
super.dispose();
videoPlayerController.dispose();
}

@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
return Container(
height: size.height,
width: size.width,
decoration: BoxDecoration(
color: Colors.grey[200],
),
child: VideoPlayer(videoPlayerController),
);
}
}
Инициализация виджета VideoPlayerItem

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

Widget buildContent(Post post) {
switch (post.type) {
case 'video':
return VideoPlayerItem(
videoUrl: post.videoUrl!,
onVideoEnd: () {
setState(() {
showRateOverlay = true;
});
},
);
// ...
}
}
Код кнопки «Обновить»

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

InkWell(
onTap: () {
setState(() {
showRateOverlay = false; // Hide the rate overlay
});
if (post.type == 'image' || post.type == 'text') {
// Reset the timer
_rateOverlayTimer?.cancel();
_rateOverlayTimer = Timer(Duration(seconds: 8), () {
setState(() {
showRateOverlay = true; // Show the rate overlay after 15 seconds
});
});
}
},
child: const Icon(
Icons.refresh_outlined,
size: 40,
color: Colors.white,
),
),
Мне нужно, чтобы при нажатии кнопки обновить_outlined видео начиналось снова, а когда видео заканчивалось, состояние showRateOverlay было истинным.< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... o-playback
Ответить

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

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

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

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

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