各位GGMM
最近遇到一问题,就是需要把几张图片组合成一段视频来播放
对视频这块了解不多
求大神!
需要NDK之类的么?
目前有开源?

解决方案 »

  1.   

    连续播放多张图片,和视频还不是一个概念。用ViewFlipper, 让他自动连续播放。
      

  2.   

    可以考虑使用帧动画=====================  Frame动画例子  ===============================
    (1)把准备好的图片放进项目res/ drawable下。
       图片有:girl_1.gif, girl_2.gif, girl_3.gif
    (2)在项目的res目录下创建文件夹anim,然后在anim文件夹下面定义动画XML文件,文件名称可以自定义,如:frame.xml。
    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false">
        <item android:drawable="@drawable/girl_1" android:duration="200" />
        <item android:drawable="@drawable/girl_2" android:duration="200" />
        <item android:drawable="@drawable/girl_3" android:duration="200" />
    </animation-list>
    上面的XML就定义了一个Frame动画,其包含3帧动画,3帧动画中分别应用了drawable中的3张图片:girl_1.gif, girl_2.gif, girl_3.gif,每帧动画持续200毫秒。android:oneshot属性如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
    (3)为View控件绑定动画效果,调用代表动画的AnimationDrawable的start()方法开始动画。
    public class FrameActivity extends Activity {
    private AnimationDrawable animationDrawable;
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ImageView imageView = (ImageView)this.findViewById(R.id.imageView);
    imageView.setBackgroundResource(R.anim.frame);
    animationDrawable = (AnimationDrawable) imageView.getBackground();
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
      if (event.getAction() == MotionEvent.ACTION_DOWN) {//按下
      animationDrawable.start();
      return true;
      }
      return super.onTouchEvent(event);
    }
    }
    有一点需要强调的是:启动Frame动画的代码animationDrawable.start();不能应用在OnCreate()方法中,因为在OnCreate()中 AnimationDrawable还没有完全的与ImageView绑定。在OnCreate()中启动动画,只能看到第一张图片。这里在触摸事件中实现的。
      

  3.   

    我自己解决了。用了ffmpeg做的一个SO,上层直接调用