refactor: Use native uri data from bytes instead of html

This commit is contained in:
Christian Kußowski 2026-03-05 13:18:50 +01:00
commit bfcd78fcdf
No known key found for this signature in database
GPG key ID: E067ECD60F1A0652
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:matrix/matrix.dart';
import 'package:opus_caf_converter_dart/opus_caf_converter_dart.dart'; import 'package:opus_caf_converter_dart/opus_caf_converter_dart.dart';
import 'package:path_provider/path_provider.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/app_config.dart';
import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/config/themes.dart';
@ -203,12 +202,12 @@ class AudioPlayerState extends State<AudioPlayerWidget> {
if (file != null) { if (file != null) {
audioPlayer.setFilePath(file.path); 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 { } else {
throw Exception('No audio file provided!'); await audioPlayer.setAudioSource(
AudioSource.uri(
Uri.dataFromBytes(matrixFile.bytes, mimeType: matrixFile.mimeType),
),
);
} }
audioPlayer.play().onError( audioPlayer.play().onError(

View file

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