gpt4 book ai didi

android - 准备好后如何使videoview不自动启动

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:02 25 4
gpt4 key购买 nike

我创建了一个带有标准媒体 Controller 的videoview。我可以通过调用 setOnPreparedListener 中的 start() 方法来 播放视频,因此视频会在它自己准备好后自动播放。

但是,我想要做的是让视频待机(自动播放),因此用户需要点击/点击/触摸视频 View 才能开始播放视频。

我进行了一些谷歌搜索,我还尝试在我的视频 View 上setOnTouchListener 并在那里调用start() 方法。但结果出乎意料(也令人困惑),一个弹出对话框出现并说“视频无法播放”

这是完整的代码:

@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 链接)在我的视频 View 上。

感谢任何帮助,谢谢。

最佳答案

这应该是一个评论,但我的声誉不够高。我没有看到你调用 prepare() 方法,所以你可能试图在播放器处于 initialized 状态时调用 start() 。您可以尝试在 onPrepared() 回调中设置 player 对象的 onTouchListener

关于android - 准备好后如何使videoview不自动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19067551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com