Skip to content

flutter_freedome_content

1.2.0+ is a facade over freedome_client. New code should use the client directly — see doc/migration-to-freedome_client.md.

FreeDome content management library for Flutter applications.

  • Content library management
  • Multiple content types (video, image, audio, interactive)
  • Content upload and download
  • Search and filtering
  • Content metadata management
  • Integration with FreeDome connectivity

Add this to your package’s pubspec.yaml file:

dependencies:
flutter_freedome_content: ^1.0.0
flutter_freedome_connectivity: ^1.0.0
import 'package:flutter_freedome_content/flutter_freedome_content.dart';
final contentService = FreeDomeContentService(baseUrl: 'https://api.example.com');
// Get all libraries
final libraries = await contentService.getLibraries();
// Get content from a library
final content = await contentService.getContentItems('library_id');
// Upload new content
final videoContent = VideoContent(
id: 'unique_id',
name: 'My Video',
videoUrl: 'https://example.com/video.mp4',
duration: Duration(minutes: 5),
quality: VideoQuality.hd,
metadata: {'category': 'tutorial'},
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
);
final contentId = await contentService.uploadContent('library_id', videoContent);
// Video content
final video = VideoContent(
id: 'video_1',
name: 'Sample Video',
videoUrl: 'https://example.com/video.mp4',
duration: Duration(minutes: 10),
quality: VideoQuality.fullHd,
metadata: {'resolution': '1920x1080'},
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
);
// Image content
final image = ImageContent(
id: 'image_1',
name: 'Sample Image',
imageUrl: 'https://example.com/image.jpg',
resolution: ImageResolution.high,
metadata: {'format': 'JPEG'},
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
);
// Audio content
final audio = AudioContent(
id: 'audio_1',
name: 'Sample Audio',
audioUrl: 'https://example.com/audio.mp3',
duration: Duration(minutes: 3),
format: AudioFormat.mp3,
bitrate: 320,
metadata: {'genre': 'music'},
createdAt: DateTime.now(),
updatedAt: DateTime.now(),
);
// Search by query
final results = await contentService.searchContent(
query: 'tutorial',
type: ContentType.video,
tags: ['education', 'beginner'],
);
// Search in specific library
final libraryResults = await contentService.searchContent(
libraryId: 'library_123',
type: ContentType.image,
);
  • ContentItem - Base class for all content types
  • VideoContent - Video content with quality settings
  • ImageContent - Image content with resolution settings
  • AudioContent - Audio content with format and bitrate
  • InteractiveContent - Interactive applications
  • ContentLibrary - Content library container
  • ContentEvent - Content-related events
  • ContentType - video, image, audio, interactive
  • VideoQuality - sd, hd, fullHd, ultraHd
  • ImageResolution - low, medium, high, ultra
  • AudioFormat - mp3, wav, flac, aac
  • FreeDomeContentService - Main content management service
  • LibrariesLoadedEvent - Fired when libraries are loaded
  • ContentUploadedEvent - Fired when content is uploaded
  • ContentDeletedEvent - Fired when content is deleted

NativeMindNONC — see the LICENSE file.

Commercial use → NativeMind sales