Articles of android video player

VideoView内部片段导致黑屏轻弹

我们在Android API 4.0上运行了一个Android应用程序。 其中一个活动的布局将屏幕分为两部分。 在左侧,我们有一个带有一些按钮的静态部分。 在右侧,我们有一个FrameLayout,它将根据按下的按钮切换到相应的片段。 问题:右侧的一个片段包含VideoView。 当用户点击按钮显示该片段时,显示片段并且video立即开始播放:在渲染该片段时,整个屏幕以黑色闪烁,这非常烦人。 以下是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() && […]

Androidvideo播放器使用NDK,OpenGL ES和FFmpeg

好的,这就是我到目前为止所拥有的。 我在android上构建了FFmpeg并且能够很好地使用它。 在从java端传递所选文件名后,我已经能够将video加载到FFmpeg中。 为了节省性能,我在NDK中编写video播放器,而不是通过JNI将帧从FFmpeg传递到java。 我想将video中的帧发送到OpenGL表面。 我无法弄清楚如何获取每帧video并将其渲染到OpenGL表面上。 我一直坚持试图解决这个问题几个星期,现在没有运气。 希望有人可以指出我正确的方向。 谢谢!

Android ExoPlayer:它是否解决了Android Media Player的无缝/无缝播放问题

有没有人尝试使用ExoPlayer来实现这一目标? 我尝试在线查看但没有成功。 当我说无缝播放时,我指的是使用媒体播放器背靠背播放本地video的问题。 在完成第一个video播放后,在第二个video开始之前会有明显的1秒延迟。 希望这个问题有助于进一步理解这个问题。 如需参考,请查看以下问题: Android:MediaPlayer无间隙或无缝video播放

如何添加video播放和资源到android应用程序

我在onriod应用上遇到了问题。 我想在其中播放video,但我不想从interenet下载。 在其他情况下,我想要在设备上。 所以,人从android市场下载它,并可以播放video,而无需下载。 我已经想出了一些解决scheme,但没有一个是好的。 首先是将其添加到应用程序资源,但是你不能在那里有video。 第二个是在安装过程中添加或更好地创build文件夹(更多specyfic第一个onCreate方法),然后从应用程序复制那里video。 好吧,不是那么糟糕的select(你可以例如下载一次只有video从networking使用后台服务),但我不知道如何删除在卸载,因为你的应用程序不知道什么时候它是非受阻。 那么有没有人知道或有任何想法呢?

如何将通过MediaRecorder录制的video长度读取到通过context.getFilesDir()构build的私有应用程序存储目录中?

我有一个奇怪的问题,通过使用MediaRecorder读取设备相机logging的video文件的长度/持续时间。 该文件被logging到应用程序的专用存储目录中,其设置如下所示: mMediaRecorder.setOutputFile(context.getFilesDir() + "/recordings/webcam.3gpp"); 录制完成后,我尝试用这些方法读取video的长度: 方法1: MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever(); mediaMetadataRetriever.setDataSource(context.getFilesDir() + "/recordings/webcam.3gpp"); String time = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); return Long.parseLong(time); 方法2: MediaPlayer mp = MediaPlayer.create(context, Uri.parse(context.getFilesDir() + "/recordings/webcam.3gpp")); long duration = mp.getDuration(); mp.release(); return duration; 没有任何方法的工作。 mediaMetadataRetriever.extractMetadata返回null, MediaPlayer.create将以IOExceptionexception失败。 我已经validation该文件存在。 重要说明:如果将录制内容保存到“/sdcard/recordings/webcam.3gpp”,则不会发生此问题。 出于某种原因,我只是不能读取文件在属于应用程序的私人文件目录中的持续时间。 此外,这个问题只发生在我的三星Droid充电,运行Android 2.3。 它不会发生在运行Android 4.2的三星Galaxy S4和运行Android 4.3的Asus Nexus 7。 编辑: 如果我把相同的文件复制到SD卡上,然后阅读它的长度,一切正常。 是什么赋予了? copy(new File(context.getFilesDir() […]

Android SDK – 来自URL的媒体播放器video

我试图find一个简单的教程,解释如何从URL加载video到Android媒体播放器,但不幸的是我找不到任何! 我尝试了几件事情来尝试让它工作,但仍然没有运气。 让MediaPlayerActivity只从url加载video的最佳方法是什么? 谢谢 编辑: 我已经按照build议尝试了下面的代码: VideoView videoView = (VideoView) findViewById(R.id.your_video_view); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setMediaController(mediaController); videoView.setVideoURI(Uri.parse("url-here")); videoView.start(); 它只是当我去这个活动崩溃。

通过MP4video向后search时呈现时间戳不正确

我正在使用MediaCodec和MediaExtractor以可变的速率播放video,无论是向前还是向后。 该代码使用类似SpeedControlCallback的东西来build立帧间暂停 – 从输出缓冲区中为其提供presentationTimeUs字段。 99%的时间都可以正常工作,但是三星S6上的AVC编解码器在向后寻找时提供了不正确的显示时间 – 如果这样做有意义的话,它们会被locking在最高价值的任何位置。 缓冲区中的数据是正确的/正在改变 – 它只是不符合固定的显示时间。 S6可以处理avc1品牌/ ftype的MP4文件的avc1 ,但是我试过的其他品牌的H.264video( mp42 , mp42 )不能100%的工作。 相同的文件在三星S5和我尝试过的其他设备上工作正常。 编解码器logging这个: 09-15 11:16:21.611 2992-16618/? W/EXYNOS_VIDEO_DEC﹕ sCurrentTimestamp(6002033) is smaller than latestTimeStamp(7001744), uses latestTimeStamp 在每个向后寻找( SEEK_TO_PREVIOUS_SYNC ),并将提供错误的所有关键帧latestTimestampValue 。 有没有人遇到类似的问题在Galaxy S6的AVC编解码器,或者有能力提供任何(非hacky)的解决scheme?

如何在android中创buildvideo预览?

我在我的SD卡上有一个video文件。 我想在我的ImageView中显示这个video的预览。 请让我知道如何在Android中执行此操作。 感谢您的帮助和时间。

VideoView里面的片段导致黑屏拂动

我们有一个在Android API 4.0上运行的Android应用程序。 其中一项活动的布局将屏幕分为两部分。 在左侧,我们有一个静态部分,有一些button。 在右侧,我们有一个FrameLayout将根据按下的button切换到相应的片段。 问题:右侧的一个片段包含一个VideoView。 当用户点击button来显示这个片段时,片段被显示出来,然后video立即开始播放:当渲染这个片段时,完整的屏幕在黑色中闪烁,这是非常烦人的。 这里是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() && […]

是否有可能从android中的videourl生成缩略图

我正在开发一个video应用程序。 我正在从服务器链接stream式传输video,是否可以在不下载video的情况下从URL生成video缩略图。