Articles of video编码

继续从onResume播放VideoView

我有一个VideoView,当我启动电子邮件意图时,它会暂停。 电子邮件意图完成后,我希望videoView继续播放,但是,它从头开始重新启动。 @Override public void onPause() { Log.d(TAG, “onPause called”); super.onPause(); videoView.pause(); } @Override public void onResume() { super.onResume(); Log.d(TAG, “onResume called”); videoView.start();//resume() doesnt work } 如何让videoView从停止的位置恢复。

是否有可能在Android中获得video的分辨率?

我正在寻找一种方法来获得Android中任何给定video的分辨率。 它不必与Android中支持的格式之外的其他格式一起使用,但如果确实如此,它会很棒。 如果您不确定Android中支持的格式,请参阅此页面: http://developer.android.com/guide/appendix/media-formats.html 我认为使用MediaPlayer类可以做我想做的事情,但这看起来非常愚蠢和低效。 另外,我想要一种相对较快的方式。 我的目标是Android 3.0+,如果这有任何区别的话。 Honeycomb还支持.mkv文件,虽然直到Android 4.0才正式支持。

同时顺利地播放video

我是Android新手,想要一个接一个地播放video,以便它看起来像连续video。 我发现stackoverflow上的这个链接非常有用。 如何播放 – video – 一个接一个 – 同时当我使用它然后虽然我能够一个接一个地播放video, 但是从一个片段切换到另一个片段导致video暂停一秒钟然后播放下一个一个 。 因此,它看起来不像连续video。 请帮我解决我的问题。 这是我的代码。 public class VideoActivity extends Activity{ VideoView videoView, videoView1; MediaController mc; int count = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_video); videoView = (VideoView) findViewById(R.id.VVSimpleVideo); setup(); videoView.setOnCompletionListener(completionListener); } public void setup() { String _path = “/mnt/sdcard/Video/”+count+”.mp4″; videoView.setVideoPath(_path); videoView.start(); count++; } […]

两个Android手机之间的实时video流

我目前正在研究两款Android手机之间的video流。 我写了一个能够将video录制到sd文件的应用程序(使用MediaRecorder); 我写了另一个能够显示文件video的应用程序。 这两个应用程序都完美 我在以下网站find了一个关于“用Android播放video – 无需写入本地文件”的网站。 这正是我想要做的。 http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system 我修改了我的代码。 对于录像机,它是: socket=severSocket.accept(); ParcelFileDescriptor=pfd; recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); recorder.setVideoFrameRate(15); recorder.setVideoSize(320, 240); recorder.setPreviewDisplay(holder.getSurface()); pfd = ParcelFileDescriptor.fromSocket(socket); recorder.setOutputFile(pfd.getFileDescriptor()); recorder.prepare(); recorder.start(); 对于video播放器: Socket socket = new Socket(IP,PORT); mMediaPlayer = new MediaPlayer(); pfd = ParcelFileDescriptor.fromSocket(socket); mMediaPlayer.setDataSource(pfd.getFileDescriptor()); // <– here is the problem mMediaPlayer.setDisplay(holder); mMediaPlayer.prepare(); mMediaPlayer.setOnBufferingUpdateListener(this); mMediaPlayer.setOnCompletionListener(this); mMediaPlayer.setOnPreparedListener(this); mMediaPlayer.setOnVideoSizeChangedListener(this); mMediaPlayer.start(); […]

无法播放video

这是我的video代码: Uri uri = Uri.parse(vidurl); MediaController mediaController = new MediaController(this); videoView.setMediaController(mediaController); videoView.requestFocus(); videoView.setVideoURI(uri); videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { videoView.start(); } }); 我尝试播放的video存储在我的服务器中。 他们使用自定义相机从同一个应用程序发送到那里。 这是video捕获参数:(以防万一有什么问题,我尝试了每个组合,VP8格式确实流,除了输出没有音频,并侧向旋转) mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) { mMediaRecorder.setOrientationHint(90); } else { mMediaRecorder.setOrientationHint(270); } mMediaRecorder.setVideoSize(list.get(sizex).width, list.get(sizex).height); mMediaRecorder.setVideoEncodingBitRate(1500000); mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); mMediaRecorder.setVideoFrameRate(30); mMediaRecorder.setMaxDuration(15000); mMediaRecorder.setOutputFile(getVidFile().getAbsolutePath()); 我一直试图解决这个问题很长一段时间,但我现在已经没有想法了。 我想在video中播放这些video。 但不是那样,我必须等待10-20秒。 之后,任一video开始或者它给我一个错误,video无法播放。 附加信息: […]

使用MediaPlayer类播放video

我正在尝试使用MediaPlayer类来播放video文件。 问题是video根本没有显示,虽然我可以听到video播放中的声音。 以下是活动代码 public class MainActivity extends Activity implements OnClickListener { private SurfaceView surfaceView; private Button btnPlay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); addListener(); } private void init() { // TODO Auto-generated method stub surfaceView = (SurfaceView) findViewById(R.id.surfaceView1); btnPlay = (Button) findViewById(R.id.btnPlay); } private void addListener() { // TODO Auto-generated method stub […]

如何创建自定义媒体播放器以在Android中播放自定义编解码器?

这里是n00b(第一个Android项目)。 我已经获得了一个与Android固件版本集成的自定义video编解码器。 它是一个.so文件,包含一个inheritance自MediaPlayerInterface的类,以及一个自定义MediaPlayerService实现,用于从相应文件types的create()工厂函数返回自定义编解码器类的实例。 我想将此编解码器用作video播放器应用程序的一部分,该应用程序可以安装在不包含固件编解码器的手机上,方法是将.so文件放在我的libs / armeabi文件夹中并通过JNI调用它。 从这个问题的答案我得知,在MediaPlayer框架内无法做到这一点,我必须从头开始创建一个新的媒体播放器。 首先,我在Java中实现了一个UI,并将其设置为使用自定义视图(而不是VideoView),该视图扩展了SurfaceView并使用MediaPlayer类的实例来播放video。 然后我用自定义媒体播放器Java类替换了这个MediaPlayer实例。 我已经设置了JNI接口,模仿android_media_MediaPlayer.cpp的方式,并在JNI代码中调用MediaPlayer C ++类。 现在我需要用自定义C ++媒体播放器类替换它 。 这是我开始遇到问题的地方。 实施自定义播放器的推荐方法是什么? 有吗? 除了在源头拖网之外,还有一些关于这些东西的在线文档吗? 我可以使用多少框架以及我需要多少重新实现自己? 我是否必须实现自己的MediaPlayerService等价物? 任何提示非常感谢。

在android中检测录制video的方向

我想制作我的自定义媒体播放器并需要video的方向信息(用于检测它是从前置或后置摄像头录制的)。 对于jpeg图像,我可以使用ExifInterface.TAG_ORIENTATION但对于video我如何能够find这些信息。 我试图从video文件中获取帧并将其转换为jpeg,但在所有情况下它总是提供方向0 。 请帮帮我。 提前致谢。

如何从SD卡播放video

我正在创建一个简单的应用程序,从网络流式传输video,但我现在想要更改代码,以便我可以从SDCard播放video文件 原始代码: Uri vidFile = Uri.parse(“MY SITE HERE”); VideoView videoView = (VideoView) findViewById(R.id.VideoView); videoView.setVideoURI(vidFile); videoView.setMediaController(new MediaController(this)); videoView.start(); 所以请帮我改变代码,以便它可以播放我的移动存储卡中的video。

如何知道MediaRecorder何时完成将数据写入文件

在进行实际录制之前,我们使用MediaRecorder使用setOutputFile()将video录制到外部存储上的文件中。 一切正常,但主要问题是录音一完成,我们就想开始在VideoView中播放录制的video。 如何知道文件何时可以读取和播放?