Flutter AWS: как аутентифицировать пользователя корзины с ролью IAM и получить объект AWS S3 для видеофайла hls и воспроизвести его в видеоплеере?
Как аутентифицировать пользователя роли IAM по региону, идентификатору корзины, ключу доступа и ключу доступа, а также получить объект видеофайла и воспроизвести его в проигрывателе. Фактически мы загрузили видеофайлы в AWS S3 и предоставили право доступа одному пользователю роли IAM.
Теперь из приложения flutter мне нужно аутентифицировать пользователя IAM с помощью ключа доступа, секретного ключа и получить видеообъект и воспроизвести его в видеопроигрывателе без сохранения или загрузки на локальном уровне.
я пробовал с плагином,
flutter_aws_s3_client: ^0.5.0
const region = "<region>";
const bucketId = "<bucket id>";
final AwsS3Client s3client = AwsS3Client(
region: region,
host: "s3.$region.amazonaws.com",
bucketId: bucketId,
accessKey: "<accesskey>",
secretKey: "<secretkey>");
//object video name
final response = await s3client.getObject("example_test.m3u8");
здесь я получил ответ объекта как 200, но как я могу передать и воспроизвести этот видеофайл в видеопроигрывателе? там в любом случае? Я попытался добавить HEADER в expo player android video_player_plugin.dart. но не повезло.
Плагин видеоплеера
video_player: ^0.10.11+1
class _VideoAppState extends State<VideoApp> {
VideoPlayerController _controller;
@override
void initState() {
super.initState();
_controller = VideoPlayerController.network('//need to pass the videoUrl of AWS S3')
..initialize().then((_) {
setState(() {});
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Video Demo',
home: Scaffold(
body: Center(
child: _controller.value.initialized
? AspectRatio(
aspectRatio: _controller.value.aspectRatio,
child: VideoPlayer(_controller),
)
: Container(),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
setState(() {
_controller.value.isPlaying
? _controller.pause()
: _controller.play();
});
},
child: Icon(
_controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
),
),
),
);
}
так помогите мне, как это решить?
заранее спасибо
1 ответ
для этого вам нужно выполнить несколько шагов 1: получить ответ на доступ 2: затем перенаправить или вызвать этот виджет видео, чтобы загрузить это видео