android – 如何使视频视图在准备好后不自动启动

android – 如何使视频视图在准备好后不自动启动,第1张

概述我已经创建了一个带有标准媒体控制器的视频视图.我可以通过调用setOnPreparedListener中的start()方法播放视频,因此视频将在完成自我准备后自动播放. 但是,我想要做的是使视频待机(不自动播放),因此用户需要点击/点击/触摸视频视频以启动视频. 我做了一些谷歌搜索,我也尝试在我的视频视图上设置onOnTouchListener并在那里调用start()方法.但结果是意外的(并且 我已经创建了一个带有标准媒体控制器的视频视图.我可以通过调用setonPreparedListener中的start()方法播放视频,因此视频将在完成自我准备后自动播放.

但是,我想要做的是使视频待机(不自动播放),因此用户需要点击/点击/触摸视频视频以启动视频.

我做了一些谷歌搜索,我也尝试在我的视频视图上设置onOntouchListener并在那里调用start()方法.但结果是意外的(并且也令人困惑),d出对话框出现并说“视频无法播放”.

这是完整的代码:

@OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_detail);        txtTitle = (TextVIEw)findVIEwByID(R.ID.txtTitle);        player = (VIDeoVIEw)findVIEwByID(R.ID.player);        Bundle vIDeo = getIntent().getExtras();        if(vIDeo != null)        {            ID = vIDeo.getString("ID");            Title = vIDeo.getString("Title");            rtsp = vIDeo.getString("rtsp");        }        txtTitle.setText(Title);        pDialog = new ProgressDialog(this);        pDialog.setTitle("Please Wait...");        pDialog.setMessage("Buffering...");        pDialog.setIndeterminate(false);        pDialog.setCancelable(false);        pDialog.show();        try {            // Start the MediaController            MediaController mediacontroller = new MediaController(this);            mediacontroller.setAnchorVIEw(player);            // Get the URL from String VIDeoURL            Uri uri = Uri.parse(rtsp);            player.setMediaController(mediacontroller);            player.setVIDeoURI(uri);             player.setBackgroundcolor(color.WHITE);        } catch (Exception e) {            Log.e("Error",e.getMessage());            e.printstacktrace();        }        player.requestFocus();        player.setonPreparedListener(new OnPreparedListener() {            @OverrIDe            public voID onPrepared(MediaPlayer arg0) {                // Todo auto-generated method stub                pDialog.dismiss();                player.setBackgroundcolor(color.transparent);                //the vIDeo will be played if i call the start() method here            }        });        player.setontouchListener(new OntouchListener() {            @OverrIDe            public boolean ontouch(VIEw arg0,MotionEvent arg1) {                // Todo auto-generated method stub                //"The vIDeo cant be played" pop up dialog appeared,vIDeo wont start                player.start();                return false;            }        });    }

我感到困惑,因为当我将start()方法放在setonPreparedListener中时可以播放,但是当我把它放在setontouchListener中时它不能播放.

我不知道这是否与问题有关,但我在视频视频上缓存了YouTube视频(RTSP链接).

任何帮助表示赞赏,谢谢.

解决方法 这应该是一个评论,但我的声誉不够高.我没有看到你调用prepare()方法,所以当玩家处于初始化状态时你可能正在尝试调用start().您可以尝试在onPrepared()回调中设置播放器对象的ontouchListener. 总结

以上是内存溢出为你收集整理的android – 如何使视频视图在准备好后不自动启动全部内容,希望文章能够帮你解决android – 如何使视频视图在准备好后不自动启动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1125029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存