Merge pull request #2654 from krille-chan/krille/uri-data-from-bytes

refactor: Use native uri data from bytes instead of html
This commit is contained in:
Krille-chan 2026-03-05 13:56:49 +01:00 committed by GitHub
commit febd0e6b41
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 10 deletions

View file

@ -10,7 +10,6 @@ import 'package:just_audio/just_audio.dart';
import 'package:matrix/matrix.dart';
import 'package:opus_caf_converter_dart/opus_caf_converter_dart.dart';
import 'package:path_provider/path_provider.dart';
import 'package:universal_html/html.dart' as html;
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/themes.dart';
@ -203,12 +202,12 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
if (file != null) {
audioPlayer.setFilePath(file.path);
} else if (kIsWeb) {
final blob = html.Blob([matrixFile.bytes], matrixFile.mimeType);
final url = html.Url.createObjectUrlFromBlob(blob);
await audioPlayer.setAudioSource(AudioSource.uri(Uri.parse(url)));
} else {
throw Exception('No audio file provided!');
await audioPlayer.setAudioSource(
AudioSource.uri(
Uri.dataFromBytes(matrixFile.bytes, mimeType: matrixFile.mimeType),
),
);
}
audioPlayer.play().onError(

View file

@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
import 'package:chewie/chewie.dart';
import 'package:matrix/matrix.dart';
import 'package:path_provider/path_provider.dart';
import 'package:universal_html/html.dart' as html;
import 'package:video_player/video_player.dart';
import 'package:fluffychat/utils/localized_exception_extension.dart';
@ -64,9 +63,9 @@ class EventVideoPlayerState extends State<EventVideoPlayer> {
// Create the VideoPlayerController from the contents of videoFile.
if (kIsWeb) {
final blob = html.Blob([videoFile.bytes], videoFile.mimeType);
final networkUri = Uri.parse(html.Url.createObjectUrlFromBlob(blob));
videoPlayerController = VideoPlayerController.networkUrl(networkUri);
videoPlayerController = VideoPlayerController.networkUrl(
Uri.dataFromBytes(videoFile.bytes, mimeType: videoFile.mimeType),
);
} else {
final tempDir = await getTemporaryDirectory();
final fileName = Uri.encodeComponent(