You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:36:05