👽 Authorized audio, video access
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:island/pods/config.dart';
|
||||||
import 'package:island/pods/network.dart';
|
import 'package:island/pods/network.dart';
|
||||||
import 'package:island/services/time.dart';
|
import 'package:island/services/time.dart';
|
||||||
import 'package:island/talker.dart';
|
import 'package:island/talker.dart';
|
||||||
@@ -57,10 +58,14 @@ class _UniversalAudioState extends ConsumerState<UniversalAudio> {
|
|||||||
final inCacheInfo = await DefaultCacheManager().getFileFromCache(url);
|
final inCacheInfo = await DefaultCacheManager().getFileFromCache(url);
|
||||||
if (inCacheInfo == null) {
|
if (inCacheInfo == null) {
|
||||||
talker.info('[MediaPlayer] Miss cache: $url');
|
talker.info('[MediaPlayer] Miss cache: $url');
|
||||||
final token = ref.watch(tokenProvider)?.token;
|
final serverUrl = ref.read(serverUrlProvider);
|
||||||
|
final token = ref.read(tokenProvider);
|
||||||
|
final authHeaders = url.startsWith(serverUrl) && token != null
|
||||||
|
? {'Authorization': 'AtField ${token.token}'}
|
||||||
|
: null;
|
||||||
DefaultCacheManager().downloadFile(
|
DefaultCacheManager().downloadFile(
|
||||||
url,
|
url,
|
||||||
authHeaders: {'Authorization': 'AtField $token'},
|
authHeaders: authHeaders,
|
||||||
);
|
);
|
||||||
uri = url;
|
uri = url;
|
||||||
} else {
|
} else {
|
||||||
@@ -68,7 +73,13 @@ class _UniversalAudioState extends ConsumerState<UniversalAudio> {
|
|||||||
talker.info('[MediaPlayer] Hit cache: $url');
|
talker.info('[MediaPlayer] Hit cache: $url');
|
||||||
}
|
}
|
||||||
|
|
||||||
_player!.open(Media(uri), play: widget.autoplay);
|
final serverUrl = ref.read(serverUrlProvider);
|
||||||
|
final token = ref.read(tokenProvider);
|
||||||
|
final Map<String, String>? httpHeaders = uri.startsWith(serverUrl) && token != null
|
||||||
|
? {'Authorization': 'AtField ${token.token}'}
|
||||||
|
: null;
|
||||||
|
|
||||||
|
_player!.open(Media(uri, httpHeaders: httpHeaders), play: widget.autoplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -164,4 +175,4 @@ class _UniversalAudioState extends ConsumerState<UniversalAudio> {
|
|||||||
).padding(horizontal: 24, vertical: 16),
|
).padding(horizontal: 24, vertical: 16),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,8 @@ import 'dart:io';
|
|||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:island/pods/config.dart';
|
||||||
|
import 'package:island/pods/network.dart';
|
||||||
import 'package:media_kit/media_kit.dart';
|
import 'package:media_kit/media_kit.dart';
|
||||||
import 'package:media_kit_video/media_kit_video.dart';
|
import 'package:media_kit_video/media_kit_video.dart';
|
||||||
|
|
||||||
@@ -30,7 +32,14 @@ class _UniversalVideoState extends ConsumerState<UniversalVideo> {
|
|||||||
_player = Player();
|
_player = Player();
|
||||||
_videoController = VideoController(_player!);
|
_videoController = VideoController(_player!);
|
||||||
|
|
||||||
_player!.open(Media(widget.uri), play: widget.autoplay);
|
final serverUrl = ref.read(serverUrlProvider);
|
||||||
|
final token = ref.read(tokenProvider);
|
||||||
|
final Map<String, String>? httpHeaders =
|
||||||
|
widget.uri.startsWith(serverUrl) && token != null
|
||||||
|
? {'Authorization': 'AtField ${token.token}'}
|
||||||
|
: null;
|
||||||
|
|
||||||
|
_player!.open(Media(widget.uri, httpHeaders: httpHeaders), play: widget.autoplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -61,4 +70,4 @@ class _UniversalVideoState extends ConsumerState<UniversalVideo> {
|
|||||||
: MaterialDesktopVideoControls,
|
: MaterialDesktopVideoControls,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user