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

Android如何通过应用内弹窗动态修改VideoView的视频链接?

没问题,我来帮你搞定这个需求!下面是具体的实现思路和代码示例,直接就能适配到你的Activity里:

实现步骤&完整代码

首先我们需要做三件事:给用户一个唤起输入对话框的入口、实现输入对话框的逻辑、更新视频URL并刷新VideoView播放。这里我以添加按钮触发为例,给你完整的代码:

package tk.protvapp.protv;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.VideoView;
import android.widget.Button;

public class YourVideoActivity extends Activity {
    // 定义全局的视频URL变量,初始值设为你的固定链接
    private String currentVideoUrl = "https://your-default-video-link.mp4";
    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_your_video); // 替换成你的布局文件名

        // 初始化控件
        videoView = findViewById(R.id.videoView); // 替换成你布局中VideoView的ID
        Button changeUrlBtn = findViewById(R.id.change_url_btn); // 替换成你按钮的ID

        // 启动时播放默认视频
        loadVideo(currentVideoUrl);

        // 点击按钮唤起输入对话框
        changeUrlBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                showUrlInputDialog();
            }
        });
    }

    // 封装加载视频的工具方法,方便复用
    private void loadVideo(String videoUrl) {
        Uri videoUri = Uri.parse(videoUrl);
        videoView.setVideoURI(videoUri);
        videoView.start();
    }

    // 显示输入视频链接的对话框
    private void showUrlInputDialog() {
        // 创建输入框,默认填充当前URL方便用户修改
        final EditText inputUrl = new EditText(this);
        inputUrl.setText(currentVideoUrl);

        new AlertDialog.Builder(this)
                .setTitle("修改视频链接")
                .setMessage("请输入新的视频URL:")
                .setView(inputUrl)
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        String newUrl = inputUrl.getText().toString().trim();
                        if (!newUrl.isEmpty()) {
                            // 更新全局的视频URL变量
                            currentVideoUrl = newUrl;
                            // 立即加载新视频
                            loadVideo(currentVideoUrl);
                        } else {
                            // 提示用户输入不能为空
                            new AlertDialog.Builder(YourVideoActivity.this)
                                    .setTitle("提示")
                                    .setMessage("视频链接不能为空哦!")
                                    .setPositiveButton("知道了", null)
                                    .show();
                        }
                    }
                })
                .setNegativeButton("取消", null)
                .show();
    }
}
关键注意事项
  • 记得在你的布局文件中添加触发按钮(id设为change_url_btn)和VideoView(id设为videoView),或者用你已有的控件(比如长按VideoView)来触发对话框
  • 如果播放的是网络视频,必须在AndroidManifest.xml中添加网络权限:
<uses-permission android:name="android.permission.INTERNET" />
  • 你还可以额外添加URL格式验证(比如检查是否包含http://或https://),让输入逻辑更严谨,避免无效链接导致播放失败

内容的提问来源于stack exchange,提问作者Jhon Cates

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:29:26