Frosty
一款支持 BTTV、FFZ 和 7TV 的 Twitch iOS 和 Android 客户端。采用 Flutter 构建。
功能
- 浏览关注的流、热门流和热门分类
- 搜索频道和分类
- 观看直播流并聊天
- 支持 BTTV、FFZ 和 7TV 的表情符号/徽章
- 表情符号菜单和自动完成
- 本地聊天用户消息历史记录
- 带过滤器的聊天者列表
- 剧院模式和全屏模式
- 画中画模式(仅限 iOS)
- 睡眠定时器
- 屏蔽和举报用户
- 浅色、深色和黑色(OLED)主题
- 可定制的设置
动机
许多用户在使用官方 Twitch 应用时遇到的一个主要问题是,像 BetterTTV (BTTV)、FrankerFaceZ (FFZ) 和 7TV 等服务的表情符号并未得到官方支持。Twitch 与这些服务无关,因此它们没有被官方集成。
因此,这些服务的数百万用户在使用官方 Twitch 应用时,体验并不理想。在流聊天中,表情符号应该出现的位置只显示文本(想象一下只能看到 :emoji_code: 而不是表情符号本身)。
Frosty 旨在为iOS 和 Android 带来这些表情符号和其他通用生活质量功能。
开发设置
-
前往 Twitch 开发控制台 并注册一个新应用,以获取 **客户端 ID** 和 **客户端密钥**,并添加一个 **OAuth 重定向 URL**。
-
将仓库克隆到目录。
-
导航到
lib/constants/constants.dart并用你的 **客户端 ID** 和 **客户端密钥** 替换clientId和secret常量(或者更好的是,如果你使用 VSCode,请使用--dart-define将它们定义为环境变量)。 -
导航到
android/app/src/main/AndroidManifest.xml并在flutter_web_auth意图过滤器下,将android:scheme的值替换为你 **OAuth 重定向 URL** 中的 scheme。 -
运行
flutter pub get获取所有依赖项。 -
选择一个模拟器或设备并运行应用程序!
常见问题
我可以更改流的质量吗?
在 Android 上,您可以通过在设置中关闭自定义流叠加层,然后点击右下角的齿轮图标来更改流的质量。
在 iOS 上,不幸的是,本机播放器无法提供质量选项,并且依赖于“自动”设置。由于没有官方 API 来获取直播流 URL,因此目前无法实现特定的质量选项。
为什么 Android 没有画中画 (PiP)?
我之前曾研究过为 Android 实现此功能,但 Android 上的网络浏览器不支持 Web 画中画 API。我使用 Web PiP API 是因为 Twitch API 的限制(流只是全屏的 Twitch 频道网站,而不是实际的视频播放器)。我*可能*可以通过使用原生 Android 代码来解决这个问题,但我首先需要学习它。
为什么某些动画和滚动看起来很不流畅?
由于 Flutter 框架,首次安装和启动时可能会有一些卡顿和不流畅。在使用并浏览应用一段时间后,卡顿会通过着色器预热/缓存得到缓解,并且在后续启动时应该最小化。观看一个聊天相对快速的流几分钟通常可以解决这个问题。
为什么 Android 上的视频流无法播放?
如果您使用的是旧版本的 Android(低于 7.1.1),由于依赖 Twitch 的 Web 播放器,视频流将无法正常播放。旧版 Android 使用较旧版本的本机网络浏览器(WebView),导致与新网站存在许多兼容性问题。
为什么即使我订阅了频道或拥有 Turbo 也会收到广告?
即使您已登录应用,仍需要登录 WebView,以便在播放流时识别您。您可以进入设置,然后在“账户”部分点击“登录 WebView”按钮来完成此操作。
为什么流和聊天之间会有延迟?
在 Android 上,延迟应该很小。如果存在延迟,请尝试刷新播放器。
在 iOS 上,由于原生播放器,延迟似乎高达 15 秒,因此不幸的是这已超出我的控制范围。目前您可以做的最好的事情就是刷新或暂停/播放流,直到延迟最小化。
更新:从 1.4.0 版本开始,有一个新的消息延迟选项,允许您设置渲染每条消息之前的延迟(以秒为单位)。
为什么某些 GIF 播放起来慢或非常快?
这似乎是由 Flutter 框架本身引起的(参见 此处 和 此处)。
为什么 ProMotion (120Hz) 不起作用?
这是由 Flutter 框架引起的,并且正在处理中(参见 此处)。
更新:随着 Flutter 3 和应用程序 1.3.0 版本,ProMotion *应该*可以正常工作。
为什么 Twitch 的功能“X”也没有在此应用中?
我仅限于 Twitch API 中可用的功能,因此 Twitch 网页或移动应用中的某些功能(例如,对预测进行投票和类别观看者计数)目前不幸无法使用。
与广告拦截或使用私有 API 相关的其他功能可能不会被官方实施,因为它们会违反 Twitch 的服务条款。我目前的最高优先级是留在应用商店并专注于为这些构建制作功能。
我会尽量添加尽可能多的功能,但由于学业和个人原因,我偶尔可能需要休息或时间有限。
我可以在哪里报告错误或请求新功能?
您可以在 此处 使用适当的标签(例如,“bug”或“feature request”)打开一个新问题,我会对其进行查看。
许可证
Frosty 根据 AGPL-3.0-or-later 获得许可。





