Aniyomi:功能强大的动漫影视播放阅读器

Aniyomi

全功能播放器和阅读器,基于Mihon开发

在Android设备上比以往更轻松地发现和观看动漫、卡通、剧集等内容。

功能特性

  • 本地内容管理:支持本地阅读和观看内容
  • 高度可配置的阅读器:提供多种阅读器视图、阅读方向和其他设置选项
  • 强大的播放器:基于mpv-android构建,提供多种配置选项和设置
  • 追番跟踪支持:集成MyAnimeList、AniList、Kitsu、MangaUpdates、Shikimori、Simkl和Bangumi等主流追番平台
  • 智能内容组织:使用分类管理您的媒体库
  • 主题个性化:支持浅色和深色主题
  • 自动更新:定时检查媒体库中的新章节和剧集
  • 备份功能:支持本地备份和云端服务备份,便于离线观看
  • 丰富的扩展功能:持续更新,提供更多实用特性

安装指南

系统要求:Android 8.0 或更高版本

下载方式

从官方发布页面下载最新版本的APK文件进行安装。

开发环境搭建

如需参与开发,需要准备以下工具:

  • Android Studio
  • 模拟器或已开启开发者选项的测试设备
  • 基本的Android开发和Kotlin编程知识

使用说明

基础使用

安装完成后,您可以:

  1. 添加内容源并浏览动漫、剧集
  2. 将感兴趣的内容添加到媒体库
  3. 配置个性化的阅读和观看设置
  4. 使用追番功能同步观看进度

播放器设置

最新版本(v0.18.1.0)已将播放器设置整合到主设置界面,方便用户快速调整播放参数。

季节支持

新增季节分类功能,更好地组织和管理系列内容。

核心代码

播放器配置集成

/**
 * 将播放器设置集成到主设置界面
 * 版本v0.18.1.0新增功能
 */
class PlayerSettingsFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        setPreferencesFromResource(R.xml.player_preferences, rootKey)
        
        // 配置MPV播放器参数
        setupMpvPreferences()
    }
    
    private fun setupMpvPreferences() {
        // 设置媒体标题属性
        findPreference<Preference>("media_title")?.let {
            it.setOnPreferenceChangeListener { _, newValue ->
                // 更新MPV的media-title属性
                updateMpvConfiguration("media-title", newValue.toString())
                true
            }
        }
    }
}

剧集解析优化

/**
 * 修复剧集编号解析问题
 * 版本v0.18.1.0修复内容
 */
object EpisodeParser {
    /**
     * 从多种格式中解析剧集编号
     * 支持: "EP 12", "第12话", "Episode 12" 等格式
     */
    fun parseEpisodeNumber(title: String): Int? {
        val patterns = listOf(
            Regex("""EP?\s*(\d+)""", RegexOption.IGNORE_CASE),
            Regex("""第\s*(\d+)\s*话"""),
            Regex("""Episode\s*(\d+)""", RegexOption.IGNORE_CASE),
            Regex("""\b(\d+)\b""")
        )
        
        patterns.forEach { pattern ->
            pattern.find(title)?.groups?.get(1)?.value?.toIntOrNull()?.let {
                return it
            }
        }
        return null
    }
}

列表视图滚动状态保持

/**
 * 修复子页面退出时列表视图滚动位置重置问题
 * 版本v0.18.1.0修复内容
 */
class LibraryListFragment : Fragment() {
    private var scrollState: Int = 0
    
    override fun onPause() {
        super.onPause()
        // 保存当前滚动位置
        recyclerView?.layoutManager?.let {
            if (it is LinearLayoutManager) {
                scrollState = it.findFirstVisibleItemPosition()
            }
        }
    }
    
    override fun onResume() {
        super.onResume()
        // 恢复保存的滚动位置
        if (scrollState > 0) {
            recyclerView?.layoutManager?.scrollToPosition(scrollState)
        }
    }
}

备份系统兼容性

/**
 * 修复Aniyomi与Mihon之间的备份创建和恢复兼容性问题
 * 版本v0.18.1.0修复内容
 */
object BackupManager {
    /**
     * 创建跨平台兼容的备份文件
     */
    fun createCompatibleBackup(context: Context): File {
        val backupFile = createBackupFile(context)
        
        // 添加版本兼容性信息
        addCompatibilityHeaders(backupFile)
        
        // 转换数据格式以确保跨平台兼容
        convertDataForCrossPlatform(backupFile)
        
        return backupFile
    }
    
    private fun addCompatibilityHeaders(file: File) {
        // 添加识别头信息,确保Mihon和Aniyomi都能正确识别备份文件
        file.appendText("backup_format: aniyomi_mihon_compatible_v2\n")
    }
}

更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-10-18 08:20  qife  阅读(6)  评论(0)    收藏  举报