NuvioMobile API 参考手册开发者必知的 20 个核心接口【免费下载链接】NuvioMobileOfficial Nuvio Mobile Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioMobileNuvioMobile是一款基于Kotlin Multiplatform和Compose Multiplatform构建的现代化跨平台媒体中心应用为Android和iOS用户提供统一的流媒体体验。本文将深入介绍NuvioMobile的20个核心API接口帮助开发者快速掌握应用的核心功能架构。 NuvioMobile核心功能概述NuvioMobile是一个功能丰富的流媒体应用支持Stremio插件生态系统、Debrid服务集成、媒体收藏管理、跨平台同步等核心功能。应用采用现代化的架构设计所有功能模块都通过清晰的API接口进行交互。 核心架构API接口1.AddonRepository - 插件管理API插件管理是NuvioMobile的核心功能通过AddonRepository接口实现Stremio插件的安装、启用和同步管理// 主要功能接口 fun initialize() // 初始化插件系统 fun installAddon(url: String, name: String?) // 安装新插件 fun enableAddon(url: String) // 启用插件 fun disableAddon(url: String) // 禁用插件 fun refreshAddon(url: String) // 刷新插件数据 fun pullFromServer(profileId: Int) // 从服务器同步插件文件路径: AddonRepository.kt2.DebridProviderApi - Debrid服务APIDebrid服务集成API支持多种Debrid服务提供商的认证和流媒体解析interface DebridProviderApi { suspend fun validateApiKey(apiKey: String): Boolean suspend fun startDeviceAuthorization(appName: String): DebridDeviceAuthorization? suspend fun resolveClientStream( stream: StreamItem, apiKey: String, season: Int?, episode: Int? ): DirectDebridResolveResult }支持的服务商: Torbox、Premiumize、RealDebrid文件路径: DebridProviderApis.kt3.CloudLibraryProviderApi - 云库API云存储库管理API支持从Debrid服务的云存储中浏览和播放媒体内容interface CloudLibraryProviderApi { suspend fun listItems(apiKey: String): ResultListCloudLibraryItem suspend fun resolvePlayback( apiKey: String, item: CloudLibraryItem, file: CloudLibraryFile ): CloudLibraryPlaybackResult }文件路径: CloudLibraryProviderApi.kt4.StreamsRepository - 流媒体源API流媒体源管理API负责从插件获取媒体流信息并处理自动播放逻辑object StreamsRepository { fun load(type: String, videoId: String, season: Int? null, episode: Int? null) fun reload(type: String, videoId: String, season: Int? null, episode: Int? null) val uiState: StateFlowStreamsUiState // 实时状态管理 }主要功能:多插件流媒体源聚合自动播放策略选择流媒体质量过滤实时状态更新文件路径: StreamsRepository.kt5.MetaDetailsRepository - 元数据API媒体元数据管理API从TMDB、MDBList等源获取详细的媒体信息object MetaDetailsRepository { fun load(type: String, id: String) suspend fun enrichForMetaScreen( requestKey: String, meta: MetaDetails, fallbackItemId: String, fallbackItemType: String, settings: MdbListSettings, settingsFingerprint: String? ): MetaDetails? }支持的数据源:TMDB电影数据库MDBList评分数据Trakt观看记录本地缓存系统文件路径: MetaDetailsRepository.kt 播放器与媒体处理API6.PlayerStreamsRepository - 播放器流媒体API专门为播放器设计的流媒体API支持剧集选择和源切换object PlayerStreamsRepository { fun loadSources(type: String, videoId: String, season: Int?, episode: Int?) fun loadEpisodeStreams(seriesId: String, season: Int, episode: Int) val sourceState: StateFlowStreamsUiState val episodeStreamsState: StateFlowStreamsUiState }文件路径: PlayerStreamsRepository.kt7.PlayerEngine - 播放引擎API跨平台播放引擎抽象层支持Android和iOS的原生播放器集成interface PlayerEngine { fun initialize(context: Any) fun prepare(mediaItem: PlayerMediaItem) fun play() fun pause() fun seekTo(positionMs: Long) fun setPlaybackSpeed(speed: Float) fun setAudioTrack(track: AudioTrack?) fun setSubtitleTrack(track: SubtitleTrack?) }平台实现:Android: ExoPlayer集成iOS: AVFoundation集成文件路径: PlayerEngine.kt8.SubtitleRepository - 字幕管理API字幕获取和管理API支持多语言字幕和样式自定义object SubtitleRepository { suspend fun fetchSubtitles( videoId: String, type: String, season: Int?, episode: Int?, language: String ): ResultListSubtitleItem fun setSubtitleStyle(style: SubtitleStyle) fun getCachedSubtitles(videoKey: String): ListSubtitleItem? }文件路径: SubtitleRepository.kt 收藏与库管理API9.CollectionRepository - 收藏管理API媒体收藏管理API支持创建、编辑和组织个人媒体库object CollectionRepository { fun addCollection(collection: Collection) fun updateCollection(collection: Collection) fun removeCollection(collectionId: String) fun getCollection(id: String): Collection? val collections: StateFlowListCollection }主要功能:收藏夹管理媒体项目组织JSON格式导入导出Trakt列表同步文件路径: CollectionRepository.kt10.LibraryRepository - 媒体库API个人媒体库管理API支持观看进度跟踪和收藏管理object LibraryRepository { fun addToLibrary(item: LibraryItem) fun removeFromLibrary(itemId: String) fun updateWatchProgress(itemId: String, progress: WatchProgress) fun getLibraryItems(): ListLibraryItem fun syncWithTrakt() }文件路径: LibraryRepository.kt11.HomeRepository - 首页内容API首页内容聚合API从多个插件源获取推荐内容object HomeRepository { fun loadHomeContent() fun refreshCatalog(catalogId: String) val uiState: StateFlowHomeUiState }支持的内容类型:继续观看热门推荐个性化收藏插件目录文件路径: HomeRepository.kt 同步与数据管理API12.SyncManager - 同步管理API跨设备数据同步管理API支持多配置文件同步internal suspend fun runOrderedProfileSync( profileId: Int, pluginsEnabled: Boolean, operations: ProfileSyncOperations, onFailure: (ProfileSyncStep, Throwable) - Unit { _, _ - } ): ProfileSyncResult同步步骤:插件同步 (Addons)插件数据同步 (Plugins)配置文件设置同步Trakt凭证同步媒体库同步收藏夹同步首页目录设置同步文件路径: SyncManager.kt13.ProfileRepository - 配置文件API多用户配置文件管理API支持个性化设置和独立数据存储object ProfileRepository { fun createProfile(name: String, avatar: String? null): Profile fun switchProfile(profileId: Int) fun deleteProfile(profileId: Int) val activeProfileId: StateFlowInt val profiles: StateFlowListProfile }文件路径: ProfileRepository.kt Stremio插件API接口14.AddonManifestParser - 插件清单解析APIStremio插件清单解析API支持插件功能验证和兼容性检查object AddonManifestParser { fun parseManifest(json: String): ResultStremioManifest fun validateManifest(manifest: StremioManifest): ValidationResult fun getSupportedTypes(manifest: StremioManifest): ListString fun getSupportedResources(manifest: StremioManifest): ListResourceDefinition }文件路径: AddonManifestParser.kt15.StreamParser - 流媒体解析APIStremio流媒体响应解析API支持多种流媒体格式object StreamParser { fun parseStreamResponse( json: String, addonId: String, requestType: String, requestId: String ): ResultListStreamItem fun normalizeStreamUrl(url: String, addonBaseUrl: String): String fun extractStreamQuality(stream: StreamItem): StreamQuality? }支持的流类型:HTTP流 (mp4, mkv, etc.)Torrent流 (magnet链接)Debrid流插件自定义流文件路径: StreamParser.kt UI与主题管理API16.AppTheme - 应用主题API主题管理系统API支持深色/浅色模式和自定义主题object AppTheme { fun setThemeMode(mode: ThemeMode) fun setAccentColor(color: Color) fun setDynamicColors(enabled: Boolean) val currentTheme: StateFlowThemeState }主题模式:Light (浅色模式)Dark (深色模式)System (跟随系统)Auto (自动切换)文件路径: AppTheme.kt17.PlayerSettingsRepository - 播放器设置API播放器配置管理API支持个性化播放设置object PlayerSettingsRepository { fun setPreferredQuality(quality: StreamQuality) fun setAutoPlayNextEpisode(enabled: Boolean) fun setSkipIntroEnabled(enabled: Boolean) fun setSubtitleStyle(style: SubtitleStyle) val settings: StateFlowPlayerSettings }文件路径: PlayerSettingsRepository.kt 数据存储与缓存API18.CollectionStorage - 收藏存储API收藏数据持久化存储API支持本地和云端同步interface CollectionStorage { fun loadPayload(): String? fun savePayload(payload: String) fun clear() fun migrateFromLegacyFormat() }存储实现:Android: SharedPreferencesiOS: UserDefaults跨平台: SQLite数据库文件路径: CollectionStorage.kt19.StreamLinkCacheRepository - 流链接缓存API流媒体链接缓存管理API提高播放启动速度object StreamLinkCacheRepository { suspend fun cacheStreamLink( streamKey: String, playbackUrl: String, expiresAt: Long? ) suspend fun getCachedStreamLink(streamKey: String): CachedStreamLink? suspend fun clearExpiredCache() }缓存策略:基于时间的过期机制LRU缓存清理跨会话持久化文件路径: StreamLinkCacheRepository.kt 工具与辅助API20.NetworkStatusRepository - 网络状态API网络连接状态监控API支持离线模式检测object NetworkStatusRepository { val isOnline: StateFlowBoolean val connectionType: StateFlowConnectionType fun addNetworkChangeListener(listener: NetworkChangeListener) fun removeNetworkChangeListener(listener: NetworkChangeListener) }连接类型:WIFI蜂窝网络以太网未知/离线文件路径: NetworkStatusRepository.kt 快速开始指南环境准备要开始使用NuvioMobile API进行开发首先需要克隆项目仓库git clone https://gitcode.com/gh_mirrors/nu/NuvioMobile.git cd NuvioMobile基础API调用示例以下是使用NuvioMobile API的基本示例// 初始化插件系统 AddonRepository.initialize() // 安装Stremio插件 AddonRepository.installAddon( url https://v3-cinemeta.strem.io/manifest.json, name Cinemeta ) // 获取媒体元数据 MetaDetailsRepository.load(movie, tt0111161) // 获取流媒体源 StreamsRepository.load(movie, tt0111161) // 管理收藏 val collection Collection( id favorites, title 我的收藏, items listOf(metaItem) ) CollectionRepository.addCollection(collection)调试与测试NuvioMobile提供了完善的调试工具# Android调试构建 ./scripts/run-mobile.sh android # iOS模拟器构建 ./scripts/run-mobile.sh ios # 发布版本构建 ./scripts/build-distribution.sh 深入学习资源官方文档: Docs/Stremio addons refer/ - Stremio插件开发指南API参考: Docs/Stremio addons refer/api/ - 完整的API文档示例代码: 查看各个功能模块的测试文件了解具体用法 最佳实践建议异步处理: 所有API调用都应使用协程进行异步处理状态管理: 使用StateFlow进行响应式状态管理错误处理: 所有API都返回Result类型确保正确处理错误内存管理: 及时取消未完成的协程任务本地化: 所有用户可见文本都应支持多语言 版本兼容性NuvioMobile遵循语义化版本控制主要API接口在主要版本更新中保持向后兼容。当前版本支持Kotlin 1.9Compose Multiplatform 1.6Android API 21iOS 14通过掌握这20个核心API接口您可以充分利用NuvioMobile的强大功能构建个性化的流媒体体验或开发第三方集成应用。无论您是想要定制播放器界面、集成新的媒体源还是开发自动化工具这些API都为您提供了坚实的基础。【免费下载链接】NuvioMobileOfficial Nuvio Mobile Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioMobile创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
NuvioMobile API 参考手册:开发者必知的 20 个核心接口
发布时间:2026/7/13 20:13:40
NuvioMobile API 参考手册开发者必知的 20 个核心接口【免费下载链接】NuvioMobileOfficial Nuvio Mobile Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioMobileNuvioMobile是一款基于Kotlin Multiplatform和Compose Multiplatform构建的现代化跨平台媒体中心应用为Android和iOS用户提供统一的流媒体体验。本文将深入介绍NuvioMobile的20个核心API接口帮助开发者快速掌握应用的核心功能架构。 NuvioMobile核心功能概述NuvioMobile是一个功能丰富的流媒体应用支持Stremio插件生态系统、Debrid服务集成、媒体收藏管理、跨平台同步等核心功能。应用采用现代化的架构设计所有功能模块都通过清晰的API接口进行交互。 核心架构API接口1.AddonRepository - 插件管理API插件管理是NuvioMobile的核心功能通过AddonRepository接口实现Stremio插件的安装、启用和同步管理// 主要功能接口 fun initialize() // 初始化插件系统 fun installAddon(url: String, name: String?) // 安装新插件 fun enableAddon(url: String) // 启用插件 fun disableAddon(url: String) // 禁用插件 fun refreshAddon(url: String) // 刷新插件数据 fun pullFromServer(profileId: Int) // 从服务器同步插件文件路径: AddonRepository.kt2.DebridProviderApi - Debrid服务APIDebrid服务集成API支持多种Debrid服务提供商的认证和流媒体解析interface DebridProviderApi { suspend fun validateApiKey(apiKey: String): Boolean suspend fun startDeviceAuthorization(appName: String): DebridDeviceAuthorization? suspend fun resolveClientStream( stream: StreamItem, apiKey: String, season: Int?, episode: Int? ): DirectDebridResolveResult }支持的服务商: Torbox、Premiumize、RealDebrid文件路径: DebridProviderApis.kt3.CloudLibraryProviderApi - 云库API云存储库管理API支持从Debrid服务的云存储中浏览和播放媒体内容interface CloudLibraryProviderApi { suspend fun listItems(apiKey: String): ResultListCloudLibraryItem suspend fun resolvePlayback( apiKey: String, item: CloudLibraryItem, file: CloudLibraryFile ): CloudLibraryPlaybackResult }文件路径: CloudLibraryProviderApi.kt4.StreamsRepository - 流媒体源API流媒体源管理API负责从插件获取媒体流信息并处理自动播放逻辑object StreamsRepository { fun load(type: String, videoId: String, season: Int? null, episode: Int? null) fun reload(type: String, videoId: String, season: Int? null, episode: Int? null) val uiState: StateFlowStreamsUiState // 实时状态管理 }主要功能:多插件流媒体源聚合自动播放策略选择流媒体质量过滤实时状态更新文件路径: StreamsRepository.kt5.MetaDetailsRepository - 元数据API媒体元数据管理API从TMDB、MDBList等源获取详细的媒体信息object MetaDetailsRepository { fun load(type: String, id: String) suspend fun enrichForMetaScreen( requestKey: String, meta: MetaDetails, fallbackItemId: String, fallbackItemType: String, settings: MdbListSettings, settingsFingerprint: String? ): MetaDetails? }支持的数据源:TMDB电影数据库MDBList评分数据Trakt观看记录本地缓存系统文件路径: MetaDetailsRepository.kt 播放器与媒体处理API6.PlayerStreamsRepository - 播放器流媒体API专门为播放器设计的流媒体API支持剧集选择和源切换object PlayerStreamsRepository { fun loadSources(type: String, videoId: String, season: Int?, episode: Int?) fun loadEpisodeStreams(seriesId: String, season: Int, episode: Int) val sourceState: StateFlowStreamsUiState val episodeStreamsState: StateFlowStreamsUiState }文件路径: PlayerStreamsRepository.kt7.PlayerEngine - 播放引擎API跨平台播放引擎抽象层支持Android和iOS的原生播放器集成interface PlayerEngine { fun initialize(context: Any) fun prepare(mediaItem: PlayerMediaItem) fun play() fun pause() fun seekTo(positionMs: Long) fun setPlaybackSpeed(speed: Float) fun setAudioTrack(track: AudioTrack?) fun setSubtitleTrack(track: SubtitleTrack?) }平台实现:Android: ExoPlayer集成iOS: AVFoundation集成文件路径: PlayerEngine.kt8.SubtitleRepository - 字幕管理API字幕获取和管理API支持多语言字幕和样式自定义object SubtitleRepository { suspend fun fetchSubtitles( videoId: String, type: String, season: Int?, episode: Int?, language: String ): ResultListSubtitleItem fun setSubtitleStyle(style: SubtitleStyle) fun getCachedSubtitles(videoKey: String): ListSubtitleItem? }文件路径: SubtitleRepository.kt 收藏与库管理API9.CollectionRepository - 收藏管理API媒体收藏管理API支持创建、编辑和组织个人媒体库object CollectionRepository { fun addCollection(collection: Collection) fun updateCollection(collection: Collection) fun removeCollection(collectionId: String) fun getCollection(id: String): Collection? val collections: StateFlowListCollection }主要功能:收藏夹管理媒体项目组织JSON格式导入导出Trakt列表同步文件路径: CollectionRepository.kt10.LibraryRepository - 媒体库API个人媒体库管理API支持观看进度跟踪和收藏管理object LibraryRepository { fun addToLibrary(item: LibraryItem) fun removeFromLibrary(itemId: String) fun updateWatchProgress(itemId: String, progress: WatchProgress) fun getLibraryItems(): ListLibraryItem fun syncWithTrakt() }文件路径: LibraryRepository.kt11.HomeRepository - 首页内容API首页内容聚合API从多个插件源获取推荐内容object HomeRepository { fun loadHomeContent() fun refreshCatalog(catalogId: String) val uiState: StateFlowHomeUiState }支持的内容类型:继续观看热门推荐个性化收藏插件目录文件路径: HomeRepository.kt 同步与数据管理API12.SyncManager - 同步管理API跨设备数据同步管理API支持多配置文件同步internal suspend fun runOrderedProfileSync( profileId: Int, pluginsEnabled: Boolean, operations: ProfileSyncOperations, onFailure: (ProfileSyncStep, Throwable) - Unit { _, _ - } ): ProfileSyncResult同步步骤:插件同步 (Addons)插件数据同步 (Plugins)配置文件设置同步Trakt凭证同步媒体库同步收藏夹同步首页目录设置同步文件路径: SyncManager.kt13.ProfileRepository - 配置文件API多用户配置文件管理API支持个性化设置和独立数据存储object ProfileRepository { fun createProfile(name: String, avatar: String? null): Profile fun switchProfile(profileId: Int) fun deleteProfile(profileId: Int) val activeProfileId: StateFlowInt val profiles: StateFlowListProfile }文件路径: ProfileRepository.kt Stremio插件API接口14.AddonManifestParser - 插件清单解析APIStremio插件清单解析API支持插件功能验证和兼容性检查object AddonManifestParser { fun parseManifest(json: String): ResultStremioManifest fun validateManifest(manifest: StremioManifest): ValidationResult fun getSupportedTypes(manifest: StremioManifest): ListString fun getSupportedResources(manifest: StremioManifest): ListResourceDefinition }文件路径: AddonManifestParser.kt15.StreamParser - 流媒体解析APIStremio流媒体响应解析API支持多种流媒体格式object StreamParser { fun parseStreamResponse( json: String, addonId: String, requestType: String, requestId: String ): ResultListStreamItem fun normalizeStreamUrl(url: String, addonBaseUrl: String): String fun extractStreamQuality(stream: StreamItem): StreamQuality? }支持的流类型:HTTP流 (mp4, mkv, etc.)Torrent流 (magnet链接)Debrid流插件自定义流文件路径: StreamParser.kt UI与主题管理API16.AppTheme - 应用主题API主题管理系统API支持深色/浅色模式和自定义主题object AppTheme { fun setThemeMode(mode: ThemeMode) fun setAccentColor(color: Color) fun setDynamicColors(enabled: Boolean) val currentTheme: StateFlowThemeState }主题模式:Light (浅色模式)Dark (深色模式)System (跟随系统)Auto (自动切换)文件路径: AppTheme.kt17.PlayerSettingsRepository - 播放器设置API播放器配置管理API支持个性化播放设置object PlayerSettingsRepository { fun setPreferredQuality(quality: StreamQuality) fun setAutoPlayNextEpisode(enabled: Boolean) fun setSkipIntroEnabled(enabled: Boolean) fun setSubtitleStyle(style: SubtitleStyle) val settings: StateFlowPlayerSettings }文件路径: PlayerSettingsRepository.kt 数据存储与缓存API18.CollectionStorage - 收藏存储API收藏数据持久化存储API支持本地和云端同步interface CollectionStorage { fun loadPayload(): String? fun savePayload(payload: String) fun clear() fun migrateFromLegacyFormat() }存储实现:Android: SharedPreferencesiOS: UserDefaults跨平台: SQLite数据库文件路径: CollectionStorage.kt19.StreamLinkCacheRepository - 流链接缓存API流媒体链接缓存管理API提高播放启动速度object StreamLinkCacheRepository { suspend fun cacheStreamLink( streamKey: String, playbackUrl: String, expiresAt: Long? ) suspend fun getCachedStreamLink(streamKey: String): CachedStreamLink? suspend fun clearExpiredCache() }缓存策略:基于时间的过期机制LRU缓存清理跨会话持久化文件路径: StreamLinkCacheRepository.kt 工具与辅助API20.NetworkStatusRepository - 网络状态API网络连接状态监控API支持离线模式检测object NetworkStatusRepository { val isOnline: StateFlowBoolean val connectionType: StateFlowConnectionType fun addNetworkChangeListener(listener: NetworkChangeListener) fun removeNetworkChangeListener(listener: NetworkChangeListener) }连接类型:WIFI蜂窝网络以太网未知/离线文件路径: NetworkStatusRepository.kt 快速开始指南环境准备要开始使用NuvioMobile API进行开发首先需要克隆项目仓库git clone https://gitcode.com/gh_mirrors/nu/NuvioMobile.git cd NuvioMobile基础API调用示例以下是使用NuvioMobile API的基本示例// 初始化插件系统 AddonRepository.initialize() // 安装Stremio插件 AddonRepository.installAddon( url https://v3-cinemeta.strem.io/manifest.json, name Cinemeta ) // 获取媒体元数据 MetaDetailsRepository.load(movie, tt0111161) // 获取流媒体源 StreamsRepository.load(movie, tt0111161) // 管理收藏 val collection Collection( id favorites, title 我的收藏, items listOf(metaItem) ) CollectionRepository.addCollection(collection)调试与测试NuvioMobile提供了完善的调试工具# Android调试构建 ./scripts/run-mobile.sh android # iOS模拟器构建 ./scripts/run-mobile.sh ios # 发布版本构建 ./scripts/build-distribution.sh 深入学习资源官方文档: Docs/Stremio addons refer/ - Stremio插件开发指南API参考: Docs/Stremio addons refer/api/ - 完整的API文档示例代码: 查看各个功能模块的测试文件了解具体用法 最佳实践建议异步处理: 所有API调用都应使用协程进行异步处理状态管理: 使用StateFlow进行响应式状态管理错误处理: 所有API都返回Result类型确保正确处理错误内存管理: 及时取消未完成的协程任务本地化: 所有用户可见文本都应支持多语言 版本兼容性NuvioMobile遵循语义化版本控制主要API接口在主要版本更新中保持向后兼容。当前版本支持Kotlin 1.9Compose Multiplatform 1.6Android API 21iOS 14通过掌握这20个核心API接口您可以充分利用NuvioMobile的强大功能构建个性化的流媒体体验或开发第三方集成应用。无论您是想要定制播放器界面、集成新的媒体源还是开发自动化工具这些API都为您提供了坚实的基础。【免费下载链接】NuvioMobileOfficial Nuvio Mobile Repository项目地址: https://gitcode.com/gh_mirrors/nu/NuvioMobile创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考