我想为我的视频播放器自定义MediaController中的控件.我想换掉播放按钮的图像,改变皮肤,改变颜色等.
有没有一种已知的方法呢?
谢谢
我正在进行活动
VideoView - 从网络服务器流式传输视频.
按钮 - 使用户进入下一个要显示的活动.
应用程序启动时,VideoView将从Web服务器播放视频.
现在假设
Total Video length is 60 Minutes
Current Video progress is 20 Minutes
Current Buffered progress 30 Minutes
Run Code Online (Sandbox Code Playgroud)
现在,当我点击上面提到的Button时,用户将进入下一个活动.
如果按下后退按钮,则从该活动开始,用户前面会显示"上一个活动"(带有VideoView和"按钮").但是当恢复时,视频的所有缓冲部分都会丢失,因此VideoView从一开始就播放视频,这真的很糟糕. < - 实际问题
问题
当Activity重新恢复时,视频的缓冲部分会丢失,因此会再次开始缓冲.那么如何克服重新缓冲视频的缓冲部分呢?
甚至官方Youtube Android应用程序.有同样的问题.
编辑1:
我在Activity中尝试了下面的代码,但它不起作用.
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
videoView.suspend();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
videoView.resume();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以指导我这个问题吗?或者我错过了一些能使这项工作完美的东西?
目前的解决方法
我已经用onPause()
方法和onResume()
方法保存了视频的当前播放位置,我已经使用该位置来寻找该持续时间的视频.这很好用.但是视频缓冲从一开始就从搜索位置开始视频开始.
非常感谢任何帮助.
android video-streaming android-video-player android-videoview
好的,这就是我到目前为止所拥有的.我在android上构建了FFmpeg并且能够很好地使用它.在从java端传递所选文件名后,我能够将视频加载到FFmpeg中.为了节省性能,我在NDK中编写视频播放器,而不是通过JNI将帧从FFmpeg传递到java.我想将视频中的帧发送到OpenGL表面.我无法弄清楚如何获取每帧视频并将其渲染到OpenGL表面上.我一直坚持试图解决这个问题几个星期,现在没有运气.希望有人可以指出我正确的方向.
谢谢!
有没有人尝试使用ExoPlayer来实现这一目标?我尝试在线查看但没有成功.
当我说无缝播放时,我指的是使用媒体播放器背靠背播放本地视频的问题.在完成第一个视频播放后,在第二个视频开始之前会有明显的1秒延迟.
希望这个问题有助于进一步理解这个问题.如需参考,请查看以下问题:
android media-player android-video-player android-mediaplayer exoplayer
我正在制作视频应用.我正在从服务器链接流式传输视频,我是否可以在不下载视频的情况下从URL生成视频缩略图.
我们在Android API 4.0上运行了一个Android应用程序.其中一个活动的布局将屏幕分为两部分.在左侧,我们有一个带有一些按钮的静态部分.在右侧,我们有一个FrameLayout,它将根据按下的按钮切换到相应的片段.
问题: 右侧的一个片段包含VideoView.当用户点击按钮以显示该片段时,片段被显示并且视频立即开始播放:在渲染该片段时,整个屏幕以黑色闪烁,这非常烦人.
以下是VideoFragment类的一些代码:
public class VideoFragment extends Fragment {
public VideoView videoView;
private ExternalVideo mVideo;
private boolean mVideoExists;
private String mDestination;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDestination = ApplicationParams.MEDIA_STORAGE_PATH + "videos/"
+ FilenameUtils.getBaseName(((DetailActivity)getActivity()).getProduct().getVideoUrl())
+ "."
+ FilenameUtils.getExtension(((DetailActivity) getActivity()).getProduct().getVideoUrl());
File file = new File(mDestination);
mVideoExists = file.exists() && file.isFile();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view;
if (mVideoExists) {
getActivity().getWindow().setFormat(PixelFormat.TRANSLUCENT);
view = inflater.inflate(R.layout.video, null);
mVideo = new ExternalVideo(mDestination);
videoView = …
Run Code Online (Sandbox Code Playgroud) android android-video-player android-layout android-fragments
我有一个以纵向模式播放的视频.在视频结束时,我需要显示一些视图.这到目前为止工作正常.
但是,我有一个问题,即在关闭屏幕后再返回活动,然后再打开屏幕时,视频最后一帧的视图不能正确重绘.
我观察到的是,当屏幕重新亮起并且我解锁时.我的视频和图像首先在全屏模式之外呈现(状态栏仍然显示),然后屏幕将进入全屏模式,将所有视图向上移动并导致伪像.
看起来这些视图在渲染后通过过渡到全屏来移出视图范围.
我真的很难过如何防止这种情况发生.
这是github上的沙箱项目,以避免使这个帖子充满代码.
该项目的基本设置如下:
片段活动在其布局上有视频视图和按钮视图.然后它将一个片段添加到contentView容器中.contentView在视频播放结束前1秒内淡出.
一切顺利,问题在于打开和关闭屏幕电源后返回应用程序.
此外,有时视频将完全退出,使视图位于黑色背景上.
提前感谢您提供的任何帮助.
这是您关闭,重新打开和解锁屏幕时发生的瑕疵.请注意,我必须拍一张照片.在DDMS上,屏幕截图工具可以正确查看图像.
android fullscreen android-video-player android-fragments android-view
如何将实时视频流式传输到Android(2.1及更高版本),我有两个链接:m3u8
和f4m
(据我所知,不支持f4m).
从我在stackoverflow上看到的,有一种方法可以使用vitamio来传输m3u8(但链接不起作用).
有没有其他方法来传输m3u8视频?也许我还可以使用其他格式?
谢谢.
android video-streaming android-video-player http-live-streaming
我正在使用AbsoluteLayout定位VideoView(我需要在特定位置的屏幕上的几个位置显示它).
public void showVideo(RectF bounds, final String videoUrl) {
AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams) video.getLayoutParams();
params.width = (int) bounds.width();
params.height = (int) bounds.height();
params.x = (int) bounds.left;
params.y = (int) bounds.top;
video.requestLayout();
video.setVisibility(View.VISIBLE);
video.setFocusable(true);
video.setFocusableInTouchMode(true);
video.requestFocus();
File file = new File(videoUrl);
video.setVideoPath(file.getAbsolutePath());
video.start();
}
Run Code Online (Sandbox Code Playgroud)
但视频没有调整到我指定的范围.
有小费吗?
另一个相关的问题是,如何通过VideoView使MediaController显示?
我的SD卡中有一个视频文件.我想在我的ImageView中展示这个视频的预览.请告诉我如何在Android中执行此操作.谢谢你的帮助和时间.
android android-video-player android-image android-imageview
android ×10
android-ndk ×1
android-view ×1
exoplayer ×1
ffmpeg ×1
fullscreen ×1
media-player ×1
opengl-es ×1
thumbnails ×1