Articles of videoview

播放video时禁用Android的VideoView requestAudioFocus?

我正在构build一个logging和回放video的应用程序。 我想这样做,而不影响背景音乐播放,即如果我开始播放video,我不想暂停其他应用程序的audio。 但是,在棒棒糖上,当调用私有方法VideoView.openVideo()时,Android的VideoView类会自动请求audio焦点: AudioManager am = (AudioManager) super.getSystemService(name); am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); 有关如何解决这个问题的任何build议?

Android – 对话框中的VideoView的MediaController出现在对话框后面

我在一个自定义对话框中有一个VideoView ,我正在创buildVideoView的媒体控制器,并将其分配给代码中的VideoView ,但是控制器实际上并没有出现在video上 – 它出现在对话框后面! 任何想法如何让控制器上面的video? 我创build了一个静态对话框助手类来帮助构build自定义对话框: public class DialogHelper { public static Dialog getVideoDialog(Context context, Uri videoLocation, boolean autoplay) { final Dialog dialog = getBaseDialog(context,true, R.layout.dialog_video); ((Activity)context).getWindow().setFormat(PixelFormat.TRANSLUCENT); final VideoView videoHolder = (VideoView) dialog.findViewById(R.id.video_view); videoHolder.setVideoURI(videoLocation); //videoHolder.setRotation(90); MediaController mediaController = new MediaController(context); videoHolder.setMediaController(mediaController); mediaController.setAnchorView(videoHolder); videoHolder.requestFocus(); if(autoplay) { videoHolder.start(); } videoHolder.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer […]

检测VideoVIew是否缓冲

有谁知道是否有可能检测VideoView缓冲? 我想在video缓冲时显示ProgressDialog。 到目前为止,我尝试使用OnPreparedListener,但只有在video第一次加载时才起作用。 如果正在播放video,并且用户将滑动条移动到不同的位置,则video仍处于“准备”状态,即使它正在缓冲。 我也试过(我知道这是可怕的)一个AsyncThread只是忙等待isPlaying(): private class BufferTask extends AsyncTask<Void, Void, Void> { protected Void doInBackground(Void…voids) { final VideoView videoView = (VideoView)findViewById(R.id.video); while (!videoView.isPlaying()) { } return null; } protected void onPostExecute(Void v) { // Hide the dialog here… } } 这是行不通的,因为只要你调用start(),VideoView似乎被认为正在播放,即使它正在缓冲。 我能想到的唯一的解决scheme是构build一个自定义的VideoViewtypes的类,所以我可以访问它的MediaPlayer实例。 有任何想法吗? 谢谢阅读。

如何在Android中以编程方式停止video播放?

我正在使用VideoView播放video,我想彻底停止播放video。请帮我解决这个问题。谢谢。

使用VideoView,如何删除“无法播放这个video”的提醒信息?

我们的应用程序播放一组video,有时我们正在播放此video警报消息。 我们要么从SD卡播放video或stream如果该video尚未下载。 大多数情况下,stream缓慢的互联网连接时出现错误。 我从阅读一些post和博客,了解这个错误的几个原因。 但是,现在我想在发生错误时播放下一个video而不显示错误消息。 我用下面的那个听众, video.setOnErrorListener(new OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Log.d("video", "setOnErrorListener "); return false; } }); 方法在出现错误时被调用,但不能停止显示该警报消息。 有没有办法停止显示该警报消息? 提前致谢。

video没有显示在VideoView上,但我可以听到它的声音

在我的button点击我写了下面的代码从我的SDCARD(MP4)播放video。 video_view = (VideoView)findViewById(R.id.video_view); video_view.setVideoPath("/sdcard/myvideo.mp4"); video_view.setMediaController(new MediaController(this)); video_view.start(); 我可以播放SDCARD录制的video。 但是,当我运行它在我的应用程序在video中,我只能听到声音。 问题: 我无法看到video。 —-我尝试了下面的链接,但仍然没有运气—- 链接1 链接2 有没有人遇到过这样的问题? 如果是的话,怎么解决呢?

如何在某个特定位置查看video内的video?

我目前正试图实现一个video视图,将显示一个特定的位置video。 我可以显示全屏video没有问题。 然而,无论何时我试图在一个框架内显示video(例如一个小矩形),我只能在该视图中显示一部分video。 我无法将video纳入这个观点。 我已经find了很多有关在android中缩放video的链接,但我找不到任何方法来做到这一点。 任何有关这个问题的帮助将是有益的。 我正在使用的是我有2个不同的类。 其中一个是我的video活动课,另外一个是助手课: public class VideoViewCustom extends VideoView { private int mForceHeight = 0; private int mForceWidth = 0; public VideoViewCustom(Context context) { super(context); } public VideoViewCustom(Context context, AttributeSet attrs) { this(context, attrs, 0); } public VideoViewCustom(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setDimensions(int […]

VideoView匹配父母身高并保持宽高比

我有一个VideoView,它是这样设置的: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/player" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <VideoView android:id="@+id/video" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_centerVertical="true" /> <ProgressBar android:id="@+id/loader" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> </RelativeLayout> 但VideoView匹配父容器的宽度,然后根据加载的电影的高宽比设置高度。 我想做相反的事情,我希望VideoView在保持宽高比不变的情况下与父级的高度相匹配,video将被裁剪。 我设法扩展VideoView来填充父级,但是不保持宽高比。 另一件事是,我将MediaController添加到VideoView是这样的: MediaController controllers = new MediaController(this) { @Override public void hide() { if (state != State.Hidden) { this.show(); } else { super.hide(); } } }; controllers.setAnchorView(videoView); videoView.setMediaController(controllers); videoView.setOnPreparedListener(new OnPreparedListener() { […]

如何在转换到横向模式android时继续播放video

我在肖像模式(不是全屏)上播放video(在VideoView上),当我改变 风景模式的video停止。 当我改变风景时,video将全屏显示,并将继续播放。 任何build议?

videoview可以播放存储在内部存储器上的video吗?

我试图为用户提供使用外部或内部存储的能力。 我正在显示图像和video(科学性质)。 将介质存储在SD卡上时,一切正常。 但是当我在内部存储媒体时,只会显示图像。 无论我尝试什么,在尝试加载并显示存储在applicationcontext.getFilesDir()下的媒体时,都会遇到各种错误。 将video视图的内容设置为这样的文件有一个窍门吗? ContentResolver能帮助我吗? 在相关的说明中,假定外部存储是否存在被认为是不正确的forms? 提前致谢, 希德 下面是“无法播放video”的一个版本,对不起,此video无法播放。 但是我有很多其他的失败模式。 我可以将内部video复制到临时存储(外部)并播放它,因此将此副本复制到内部的确可以创build有效的电影。 当我尝试从内部存储器直接播放它时,它只会失败。 videoFile = new File(this.getFilesDir() + File.separator + "test.mp4"); InputStream data = res.openRawResource(R.raw.moviegood); try { OutputStream myOutputStream = new FileOutputStream(videoFile); byte[] buffer = new byte[8192]; int length; while ( (length = data.read(buffer)) > 0 ) { myOutputStream.write(buffer); } //Close the streams myOutputStream.flush(); […]