Articles of videoview

在压缩文件中播放.mp4文件而不解压缩

在SD卡上,我有一个包含一个video文件(.mp4)的zip文件。 我需要通过VideoView播放video文件,而不需要解压缩。 到目前为止我已经尝试过: ZipFile zipFile = new ZipFile(new File("/sdcard/checking.zip")); ZipEntry zipEntry = zipFile.getEntry("checking.mp4"); InputStream inStream = zipFile.getInputStream(zipEntry); 但是我没有find任何从InputStream播放video的API。 zipEntry.getSize()确实返回值。 我试过videoView.setVideoURI(Uri.parse("//sdcard/checking.zip!/checking.mp4")); 从这里 但它显示“不能播放video”。 那么我怎么做(在标题中提到)在Android上。

带有Cookie(或标题)的VideoView

我正在尝试使用android.widget.VideoViewstream内容。 我需要确保在使用setVideoURI(Uri)时,VideoView将包含来自之前HttpClient调用的Cookie。 我在源代码中看到有setVideoUri(Uri,Headers),但是它有一个@Hide的JavaDoc注解,并且不会被编译。 那么,无论如何,通过CookieView或VideoView的HTTP请求传递头文件? 谢谢。

播放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() { […]