增加跳过片头片尾,上一章下一章移动到AudioPlayer对象中

This commit is contained in:
rang 2025-10-24 11:47:50 +08:00
parent e06c834d0e
commit 620a1eb7a2
29 changed files with 1080 additions and 179 deletions

View file

@ -24,8 +24,12 @@ class MessageLookup extends MessageLookupByLibrary {
static String m1(item) => "Deleted ${item}";
static String m2(error) => "Error loading libraries: ${error}";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"account": MessageLookupByLibrary.simpleMessage("Account"),
"accountSwitch": MessageLookupByLibrary.simpleMessage("Switch Account"),
"appSettings": MessageLookupByLibrary.simpleMessage("App Settings"),
"appearance": MessageLookupByLibrary.simpleMessage("Appearance"),
"autoTurnOnSleepTimer": MessageLookupByLibrary.simpleMessage(
@ -42,12 +46,20 @@ class MessageLookup extends MessageLookupByLibrary {
"bookAboutDefault": MessageLookupByLibrary.simpleMessage(
"Sorry, no description found",
),
"bookAuthors": MessageLookupByLibrary.simpleMessage("Authors"),
"bookDownloads": MessageLookupByLibrary.simpleMessage("Downloads"),
"bookGenres": MessageLookupByLibrary.simpleMessage("Genres"),
"bookMetadataAbridged": MessageLookupByLibrary.simpleMessage("Abridged"),
"bookMetadataLength": MessageLookupByLibrary.simpleMessage("Length"),
"bookMetadataPublished": MessageLookupByLibrary.simpleMessage("Published"),
"bookMetadataUnabridged": MessageLookupByLibrary.simpleMessage(
"Unabridged",
),
"bookSeries": MessageLookupByLibrary.simpleMessage("Series"),
"bookShelveEmpty": MessageLookupByLibrary.simpleMessage("Try again"),
"bookShelveEmptyText": MessageLookupByLibrary.simpleMessage(
"No shelves to display",
),
"cancel": MessageLookupByLibrary.simpleMessage("Cancel"),
"copyToClipboard": MessageLookupByLibrary.simpleMessage(
"Copy to Clipboard",
@ -62,11 +74,30 @@ class MessageLookup extends MessageLookupByLibrary {
"deleteDialog": m0,
"deleted": m1,
"explore": MessageLookupByLibrary.simpleMessage("explore"),
"exploreHint": MessageLookupByLibrary.simpleMessage(
"Seek and you shall discover...",
),
"exploreTooltip": MessageLookupByLibrary.simpleMessage(
"Search and Explore",
),
"general": MessageLookupByLibrary.simpleMessage("General"),
"help": MessageLookupByLibrary.simpleMessage("Help"),
"home": MessageLookupByLibrary.simpleMessage("Home"),
"homeBookContinueListening": MessageLookupByLibrary.simpleMessage(
"Continue Listening",
),
"homeBookContinueSeries": MessageLookupByLibrary.simpleMessage(
"Continue Series",
),
"homeBookDiscover": MessageLookupByLibrary.simpleMessage("Discover"),
"homeBookListenAgain": MessageLookupByLibrary.simpleMessage("Listen Again"),
"homeBookNewestAuthors": MessageLookupByLibrary.simpleMessage(
"Newest Authors",
),
"homeBookRecentlyAdded": MessageLookupByLibrary.simpleMessage(
"Recently Added",
),
"homeBookRecommended": MessageLookupByLibrary.simpleMessage("Recommended"),
"homeContinueListening": MessageLookupByLibrary.simpleMessage(
"Continue Listening",
),
@ -85,10 +116,22 @@ class MessageLookup extends MessageLookupByLibrary {
"Language switch",
),
"library": MessageLookupByLibrary.simpleMessage("Library"),
"libraryChange": MessageLookupByLibrary.simpleMessage("Change Library"),
"libraryEmpty": MessageLookupByLibrary.simpleMessage(
"No libraries available.",
),
"libraryLoadError": m2,
"librarySelect": MessageLookupByLibrary.simpleMessage("Select Library"),
"librarySwitchTooltip": MessageLookupByLibrary.simpleMessage(
"Switch Library",
),
"libraryTooltip": MessageLookupByLibrary.simpleMessage(
"Browse your library",
),
"loading": MessageLookupByLibrary.simpleMessage("Loading..."),
"logs": MessageLookupByLibrary.simpleMessage("Logs"),
"no": MessageLookupByLibrary.simpleMessage("No"),
"notImplemented": MessageLookupByLibrary.simpleMessage("Not implemented"),
"notificationMediaPlayer": MessageLookupByLibrary.simpleMessage(
"Notification Media Player",
),
@ -102,8 +145,38 @@ class MessageLookup extends MessageLookupByLibrary {
"playerSettingsDescription": MessageLookupByLibrary.simpleMessage(
"Customize the player settings",
),
"playerSettingsPlaybackReporting": MessageLookupByLibrary.simpleMessage(
"Playback Reporting",
),
"playerSettingsPlaybackReportingIgnore":
MessageLookupByLibrary.simpleMessage(
"Ignore Playback Position Less Than",
),
"playerSettingsPlaybackReportingMinimum":
MessageLookupByLibrary.simpleMessage("Minimum Position to Report"),
"playerSettingsPlaybackReportingMinimumDescriptionHead":
MessageLookupByLibrary.simpleMessage(
"Do not report playback for the first ",
),
"playerSettingsPlaybackReportingMinimumDescriptionTail":
MessageLookupByLibrary.simpleMessage("of the book"),
"playerSettingsRememberForEveryBook": MessageLookupByLibrary.simpleMessage(
"Remember Player Settings for Every Book",
),
"playerSettingsRememberForEveryBookDescription":
MessageLookupByLibrary.simpleMessage(
"Settings like speed, loudness, etc. will be remembered for every book",
),
"playerSettingsSpeedDefault": MessageLookupByLibrary.simpleMessage(
"Default Speed",
),
"playerSettingsSpeedOptions": MessageLookupByLibrary.simpleMessage(
"Speed Options",
),
"playlistsMine": MessageLookupByLibrary.simpleMessage("My Playlists"),
"readLess": MessageLookupByLibrary.simpleMessage("Read Less"),
"readMore": MessageLookupByLibrary.simpleMessage("Read More"),
"refresh": MessageLookupByLibrary.simpleMessage("Refresh"),
"reset": MessageLookupByLibrary.simpleMessage("Reset"),
"resetAppSettings": MessageLookupByLibrary.simpleMessage(
"Reset App Settings",
@ -132,6 +205,8 @@ class MessageLookup extends MessageLookupByLibrary {
"Restore the app settings from the backup",
),
"resume": MessageLookupByLibrary.simpleMessage("Resume"),
"retry": MessageLookupByLibrary.simpleMessage("Retry"),
"settings": MessageLookupByLibrary.simpleMessage("Settings"),
"shakeDetector": MessageLookupByLibrary.simpleMessage("Shake Detector"),
"shakeDetectorDescription": MessageLookupByLibrary.simpleMessage(
"Customize the shake detector settings",
@ -141,6 +216,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Customize the app theme",
),
"unknown": MessageLookupByLibrary.simpleMessage("Unknown"),
"webVersion": MessageLookupByLibrary.simpleMessage("Web Version"),
"yes": MessageLookupByLibrary.simpleMessage("Yes"),
"you": MessageLookupByLibrary.simpleMessage("You"),
"youTooltip": MessageLookupByLibrary.simpleMessage(

View file

@ -24,8 +24,12 @@ class MessageLookup extends MessageLookupByLibrary {
static String m1(item) => "已删除 ${item}";
static String m2(error) => "加载库时出错:${error}";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"account": MessageLookupByLibrary.simpleMessage("账户"),
"accountSwitch": MessageLookupByLibrary.simpleMessage("切换账户"),
"appSettings": MessageLookupByLibrary.simpleMessage("应用设置"),
"appearance": MessageLookupByLibrary.simpleMessage("外观"),
"autoTurnOnSleepTimer": MessageLookupByLibrary.simpleMessage("自动开启睡眠定时器"),
@ -36,19 +40,38 @@ class MessageLookup extends MessageLookupByLibrary {
"backupAndRestore": MessageLookupByLibrary.simpleMessage("备份与恢复"),
"bookAbout": MessageLookupByLibrary.simpleMessage("关于本书"),
"bookAboutDefault": MessageLookupByLibrary.simpleMessage("抱歉,找不到描述"),
"bookAuthors": MessageLookupByLibrary.simpleMessage("作者"),
"bookDownloads": MessageLookupByLibrary.simpleMessage("下载"),
"bookGenres": MessageLookupByLibrary.simpleMessage("风格"),
"bookMetadataAbridged": MessageLookupByLibrary.simpleMessage("删节版"),
"bookMetadataLength": MessageLookupByLibrary.simpleMessage("持续时间"),
"bookMetadataPublished": MessageLookupByLibrary.simpleMessage("发布年份"),
"bookMetadataUnabridged": MessageLookupByLibrary.simpleMessage("未删节版"),
"bookSeries": MessageLookupByLibrary.simpleMessage("系列"),
"bookShelveEmpty": MessageLookupByLibrary.simpleMessage("重试"),
"bookShelveEmptyText": MessageLookupByLibrary.simpleMessage("未查询到书架"),
"cancel": MessageLookupByLibrary.simpleMessage("取消"),
"copyToClipboard": MessageLookupByLibrary.simpleMessage("复制到剪贴板"),
"copyToClipboardDescription": MessageLookupByLibrary.simpleMessage(
"将应用程序设置复制到剪贴板",
),
"copyToClipboardToast": MessageLookupByLibrary.simpleMessage("设置已复制到剪贴板"),
"delete": MessageLookupByLibrary.simpleMessage("Delete"),
"delete": MessageLookupByLibrary.simpleMessage("删除"),
"deleteDialog": m0,
"deleted": m1,
"explore": MessageLookupByLibrary.simpleMessage("探索"),
"exploreHint": MessageLookupByLibrary.simpleMessage("搜索与探索..."),
"exploreTooltip": MessageLookupByLibrary.simpleMessage("搜索和探索"),
"general": MessageLookupByLibrary.simpleMessage("通用"),
"help": MessageLookupByLibrary.simpleMessage("Help"),
"home": MessageLookupByLibrary.simpleMessage("首页"),
"homeBookContinueListening": MessageLookupByLibrary.simpleMessage("继续收听"),
"homeBookContinueSeries": MessageLookupByLibrary.simpleMessage("继续系列"),
"homeBookDiscover": MessageLookupByLibrary.simpleMessage("发现"),
"homeBookListenAgain": MessageLookupByLibrary.simpleMessage("再听一遍"),
"homeBookNewestAuthors": MessageLookupByLibrary.simpleMessage("最新作者"),
"homeBookRecentlyAdded": MessageLookupByLibrary.simpleMessage("最近添加"),
"homeBookRecommended": MessageLookupByLibrary.simpleMessage("推荐"),
"homeContinueListening": MessageLookupByLibrary.simpleMessage("继续收听"),
"homeListenAgain": MessageLookupByLibrary.simpleMessage("再听一遍"),
"homePageSettings": MessageLookupByLibrary.simpleMessage("主页设置"),
@ -59,8 +82,16 @@ class MessageLookup extends MessageLookupByLibrary {
"language": MessageLookupByLibrary.simpleMessage("语言"),
"languageDescription": MessageLookupByLibrary.simpleMessage("语言切换"),
"library": MessageLookupByLibrary.simpleMessage("媒体库"),
"libraryChange": MessageLookupByLibrary.simpleMessage("更改媒体库"),
"libraryEmpty": MessageLookupByLibrary.simpleMessage("没有可用的库。"),
"libraryLoadError": m2,
"librarySelect": MessageLookupByLibrary.simpleMessage("选择媒体库"),
"librarySwitchTooltip": MessageLookupByLibrary.simpleMessage("切换媒体库"),
"libraryTooltip": MessageLookupByLibrary.simpleMessage("浏览您的媒体库"),
"loading": MessageLookupByLibrary.simpleMessage("加载中..."),
"logs": MessageLookupByLibrary.simpleMessage("日志"),
"no": MessageLookupByLibrary.simpleMessage(""),
"notImplemented": MessageLookupByLibrary.simpleMessage("未实现"),
"notificationMediaPlayer": MessageLookupByLibrary.simpleMessage("通知媒体播放器"),
"notificationMediaPlayerDescription": MessageLookupByLibrary.simpleMessage(
"在通知中自定义媒体播放器",
@ -72,8 +103,32 @@ class MessageLookup extends MessageLookupByLibrary {
"playerSettingsDescription": MessageLookupByLibrary.simpleMessage(
"自定义播放器设置",
),
"playerSettingsPlaybackReporting": MessageLookupByLibrary.simpleMessage(
"回放报告",
),
"playerSettingsPlaybackReportingIgnore":
MessageLookupByLibrary.simpleMessage("忽略播放位置小于"),
"playerSettingsPlaybackReportingMinimum":
MessageLookupByLibrary.simpleMessage("回放报告最小位置"),
"playerSettingsPlaybackReportingMinimumDescriptionHead":
MessageLookupByLibrary.simpleMessage("不要报告本书前 "),
"playerSettingsPlaybackReportingMinimumDescriptionTail":
MessageLookupByLibrary.simpleMessage(" 的播放"),
"playerSettingsRememberForEveryBook": MessageLookupByLibrary.simpleMessage(
"记住每本书的播放器设置",
),
"playerSettingsRememberForEveryBookDescription":
MessageLookupByLibrary.simpleMessage("每本书都会记住播放速度、音量等设置"),
"playerSettingsSpeedDefault": MessageLookupByLibrary.simpleMessage(
"默认播放速度",
),
"playerSettingsSpeedOptions": MessageLookupByLibrary.simpleMessage(
"播放速度选项",
),
"playlistsMine": MessageLookupByLibrary.simpleMessage("播放列表"),
"readLess": MessageLookupByLibrary.simpleMessage("折叠"),
"readMore": MessageLookupByLibrary.simpleMessage("展开"),
"refresh": MessageLookupByLibrary.simpleMessage("刷新"),
"reset": MessageLookupByLibrary.simpleMessage("重置"),
"resetAppSettings": MessageLookupByLibrary.simpleMessage("重置应用程序设置"),
"resetAppSettingsDescription": MessageLookupByLibrary.simpleMessage(
@ -90,6 +145,8 @@ class MessageLookup extends MessageLookupByLibrary {
"restoreBackupValidator": MessageLookupByLibrary.simpleMessage("请将备份粘贴到此处"),
"restoreDescription": MessageLookupByLibrary.simpleMessage("从备份中还原应用程序设置"),
"resume": MessageLookupByLibrary.simpleMessage("继续"),
"retry": MessageLookupByLibrary.simpleMessage("重试"),
"settings": MessageLookupByLibrary.simpleMessage("设置"),
"shakeDetector": MessageLookupByLibrary.simpleMessage("抖动检测器"),
"shakeDetectorDescription": MessageLookupByLibrary.simpleMessage(
"自定义抖动检测器设置",
@ -97,6 +154,7 @@ class MessageLookup extends MessageLookupByLibrary {
"themeSettings": MessageLookupByLibrary.simpleMessage("主题设置"),
"themeSettingsDescription": MessageLookupByLibrary.simpleMessage("自定义应用主题"),
"unknown": MessageLookupByLibrary.simpleMessage("未知"),
"webVersion": MessageLookupByLibrary.simpleMessage("Web版本"),
"yes": MessageLookupByLibrary.simpleMessage(""),
"you": MessageLookupByLibrary.simpleMessage("我的"),
"youTooltip": MessageLookupByLibrary.simpleMessage("您的个人资料和设置"),

View file

@ -74,11 +74,21 @@ class S {
return Intl.message('Cancel', name: 'cancel', desc: '', args: []);
}
/// `Refresh`
String get refresh {
return Intl.message('Refresh', name: 'refresh', desc: '', args: []);
}
/// `Reset`
String get reset {
return Intl.message('Reset', name: 'reset', desc: '', args: []);
}
/// `Retry`
String get retry {
return Intl.message('Retry', name: 'retry', desc: '', args: []);
}
/// `Delete`
String get delete {
return Intl.message('Delete', name: 'delete', desc: '', args: []);
@ -134,6 +144,16 @@ class S {
return Intl.message('Read Less', name: 'readLess', desc: '', args: []);
}
/// `Loading...`
String get loading {
return Intl.message('Loading...', name: 'loading', desc: '', args: []);
}
/// `Help`
String get help {
return Intl.message('Help', name: 'help', desc: '', args: []);
}
/// `Home`
String get home {
return Intl.message('Home', name: 'home', desc: '', args: []);
@ -169,6 +189,76 @@ class S {
);
}
/// `Continue Listening`
String get homeBookContinueListening {
return Intl.message(
'Continue Listening',
name: 'homeBookContinueListening',
desc: '',
args: [],
);
}
/// `Continue Series`
String get homeBookContinueSeries {
return Intl.message(
'Continue Series',
name: 'homeBookContinueSeries',
desc: '',
args: [],
);
}
/// `Recently Added`
String get homeBookRecentlyAdded {
return Intl.message(
'Recently Added',
name: 'homeBookRecentlyAdded',
desc: '',
args: [],
);
}
/// `Recommended`
String get homeBookRecommended {
return Intl.message(
'Recommended',
name: 'homeBookRecommended',
desc: '',
args: [],
);
}
/// `Discover`
String get homeBookDiscover {
return Intl.message(
'Discover',
name: 'homeBookDiscover',
desc: '',
args: [],
);
}
/// `Listen Again`
String get homeBookListenAgain {
return Intl.message(
'Listen Again',
name: 'homeBookListenAgain',
desc: '',
args: [],
);
}
/// `Newest Authors`
String get homeBookNewestAuthors {
return Intl.message(
'Newest Authors',
name: 'homeBookNewestAuthors',
desc: '',
args: [],
);
}
/// `About the Book`
String get bookAbout {
return Intl.message(
@ -229,6 +319,46 @@ class S {
);
}
/// `Try again`
String get bookShelveEmpty {
return Intl.message(
'Try again',
name: 'bookShelveEmpty',
desc: '',
args: [],
);
}
/// `No shelves to display`
String get bookShelveEmptyText {
return Intl.message(
'No shelves to display',
name: 'bookShelveEmptyText',
desc: '',
args: [],
);
}
/// `Authors`
String get bookAuthors {
return Intl.message('Authors', name: 'bookAuthors', desc: '', args: []);
}
/// `Genres`
String get bookGenres {
return Intl.message('Genres', name: 'bookGenres', desc: '', args: []);
}
/// `Series`
String get bookSeries {
return Intl.message('Series', name: 'bookSeries', desc: '', args: []);
}
/// `Downloads`
String get bookDownloads {
return Intl.message('Downloads', name: 'bookDownloads', desc: '', args: []);
}
/// `Library`
String get library {
return Intl.message('Library', name: 'library', desc: '', args: []);
@ -244,6 +374,56 @@ class S {
);
}
/// `Switch Library`
String get librarySwitchTooltip {
return Intl.message(
'Switch Library',
name: 'librarySwitchTooltip',
desc: '',
args: [],
);
}
/// `Change Library`
String get libraryChange {
return Intl.message(
'Change Library',
name: 'libraryChange',
desc: '',
args: [],
);
}
/// `Select Library`
String get librarySelect {
return Intl.message(
'Select Library',
name: 'librarySelect',
desc: '',
args: [],
);
}
/// `No libraries available.`
String get libraryEmpty {
return Intl.message(
'No libraries available.',
name: 'libraryEmpty',
desc: '',
args: [],
);
}
/// `Error loading libraries: {error}`
String libraryLoadError(String error) {
return Intl.message(
'Error loading libraries: $error',
name: 'libraryLoadError',
desc: '',
args: [error],
);
}
/// `explore`
String get explore {
return Intl.message('explore', name: 'explore', desc: '', args: []);
@ -259,6 +439,16 @@ class S {
);
}
/// `Seek and you shall discover...`
String get exploreHint {
return Intl.message(
'Seek and you shall discover...',
name: 'exploreHint',
desc: '',
args: [],
);
}
/// `You`
String get you {
return Intl.message('You', name: 'you', desc: '', args: []);
@ -274,6 +464,41 @@ class S {
);
}
/// `Settings`
String get settings {
return Intl.message('Settings', name: 'settings', desc: '', args: []);
}
/// `Account`
String get account {
return Intl.message('Account', name: 'account', desc: '', args: []);
}
/// `Switch Account`
String get accountSwitch {
return Intl.message(
'Switch Account',
name: 'accountSwitch',
desc: '',
args: [],
);
}
/// `My Playlists`
String get playlistsMine {
return Intl.message(
'My Playlists',
name: 'playlistsMine',
desc: '',
args: [],
);
}
/// `Web Version`
String get webVersion {
return Intl.message('Web Version', name: 'webVersion', desc: '', args: []);
}
/// `App Settings`
String get appSettings {
return Intl.message(
@ -324,6 +549,96 @@ class S {
);
}
/// `Remember Player Settings for Every Book`
String get playerSettingsRememberForEveryBook {
return Intl.message(
'Remember Player Settings for Every Book',
name: 'playerSettingsRememberForEveryBook',
desc: '',
args: [],
);
}
/// `Settings like speed, loudness, etc. will be remembered for every book`
String get playerSettingsRememberForEveryBookDescription {
return Intl.message(
'Settings like speed, loudness, etc. will be remembered for every book',
name: 'playerSettingsRememberForEveryBookDescription',
desc: '',
args: [],
);
}
/// `Default Speed`
String get playerSettingsSpeedDefault {
return Intl.message(
'Default Speed',
name: 'playerSettingsSpeedDefault',
desc: '',
args: [],
);
}
/// `Speed Options`
String get playerSettingsSpeedOptions {
return Intl.message(
'Speed Options',
name: 'playerSettingsSpeedOptions',
desc: '',
args: [],
);
}
/// `Playback Reporting`
String get playerSettingsPlaybackReporting {
return Intl.message(
'Playback Reporting',
name: 'playerSettingsPlaybackReporting',
desc: '',
args: [],
);
}
/// `Minimum Position to Report`
String get playerSettingsPlaybackReportingMinimum {
return Intl.message(
'Minimum Position to Report',
name: 'playerSettingsPlaybackReportingMinimum',
desc: '',
args: [],
);
}
/// `Do not report playback for the first `
String get playerSettingsPlaybackReportingMinimumDescriptionHead {
return Intl.message(
'Do not report playback for the first ',
name: 'playerSettingsPlaybackReportingMinimumDescriptionHead',
desc: '',
args: [],
);
}
/// `of the book`
String get playerSettingsPlaybackReportingMinimumDescriptionTail {
return Intl.message(
'of the book',
name: 'playerSettingsPlaybackReportingMinimumDescriptionTail',
desc: '',
args: [],
);
}
/// `Ignore Playback Position Less Than`
String get playerSettingsPlaybackReportingIgnore {
return Intl.message(
'Ignore Playback Position Less Than',
name: 'playerSettingsPlaybackReportingIgnore',
desc: '',
args: [],
);
}
/// `Auto Turn On Sleep Timer`
String get autoTurnOnSleepTimer {
return Intl.message(
@ -568,6 +883,21 @@ class S {
args: [],
);
}
/// `Logs`
String get logs {
return Intl.message('Logs', name: 'logs', desc: '', args: []);
}
/// `Not implemented`
String get notImplemented {
return Intl.message(
'Not implemented',
name: 'notImplemented',
desc: '',
args: [],
);
}
}
class AppLocalizationDelegate extends LocalizationsDelegate<S> {