Flutter使用flutter_video_cast投屏Chromecast的Android端配置疑问
Flutter flutter_video_cast插件Android端配置操作指南
基础配置(对应官方指引截图内容)
- 调整Android最低支持版本
打开android/app/build.gradle文件,将minSdkVersion修改为21及以上,Chromecast服务最低兼容Android 5.0系统:android { defaultConfig { minSdkVersion 21 // 其他原有配置保持不变 } } - 添加Manifest Cast服务声明
打开android/app/src/main/AndroidManifest.xml,在application标签内添加如下配置:<!-- Cast配置声明 --> <meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="com.google.android.gms.cast.framework.media.CastMediaOptionsProvider" /> <!-- 测试可使用谷歌官方默认媒体接收端ID:CC1AD845,正式上线可替换为自行申请的应用ID --> <meta-data android:name="com.google.android.gms.cast.framework.APP_ID" android:value="CC1AD845" />
继承FlutterFragmentActivity初始化CastContext实现步骤
Cast SDK的运行依赖FragmentActivity的生命周期管理,Flutter默认的FlutterActivity不满足要求,所以需要替换为继承FlutterFragmentActivity的实现
Kotlin项目实现
在android/app/src/main/kotlin/你的应用包名路径/下,修改或新建MainActivity.kt,代码如下:
import io.flutter.embedding.android.FlutterFragmentActivity import com.google.android.gms.cast.framework.CastContext import android.os.Bundle class MainActivity: FlutterFragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 初始化Cast全局上下文 CastContext.getSharedInstance(this) } }
Java项目实现
在android/app/src/main/java/你的应用包名路径/下,修改或新建MainActivity.java,代码如下:
import io.flutter.embedding.android.FlutterFragmentActivity; import com.google.android.gms.cast.framework.CastContext; import android.os.Bundle; public class MainActivity extends FlutterFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 初始化Cast全局上下文 CastContext.getSharedInstance(this); } }
验证Activity配置
检查AndroidManifest.xml中MainActivity的android:name属性是否指向你修改后的Activity,默认配置为.MainActivity即可正常生效:
<activity android:name=".MainActivity" android:exported="true" <!-- 其他原有配置、intent-filter全部保留无需修改 --> > </activity>
生效验证
- 执行
flutter clean清理本地构建缓存 - 重新运行Android端应用,保证测试设备和Chromecast设备处于同一WiFi局域网下,即可正常搜索到可投屏设备
注意:部分定制Android系统可能需要授予应用位置权限才能正常搜索到局域网内的Cast设备,可自行添加权限申请逻辑
内容的提问来源于stack exchange,提问作者BestOFBest
相关产品推荐
相关产品推荐

