add
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import '../../models/video_item.dart';
|
||||
|
||||
/// 开发期播放地址钩子:
|
||||
/// 服务端 /hls 转码产物未就绪前,用 --dart-define=TEST_VIDEO_URL=xxx 注入公网
|
||||
/// 测试 m3u8,把 video_url 为空或相对路径的条目替换为测试流以验证播放器。
|
||||
/// 生产构建不传该 define,零开销;服务端 /hls 就绪后此钩子可保留作降级兜底。
|
||||
const String _testStreamUrl = String.fromEnvironment('TEST_VIDEO_URL');
|
||||
|
||||
/// 解析实际播放地址。
|
||||
/// - 注入了测试流且原始地址不可用(空/非 http 绝对地址)→ 返回测试流
|
||||
/// - 否则返回原始 video_url
|
||||
///
|
||||
/// [testUrl] 可选参数便于单元测试(fromEnvironment 在测试中恒为空)。
|
||||
String resolvePlayUrl(VideoItem item, {String? testUrl}) {
|
||||
final injected = testUrl ?? _testStreamUrl;
|
||||
final raw = item.videoUrl.trim();
|
||||
final playable = raw.startsWith('http://') || raw.startsWith('https://');
|
||||
if (!playable && injected.isNotEmpty) return injected;
|
||||
return raw;
|
||||
}
|
||||
Reference in New Issue
Block a user