Android: видео в TextureView

Я узнал, что мы можем воспроизводить видео в виде текстуры. Но я видел только, как воспроизводить видео, снятые камерой, но я хочу воспроизвести в ней доступное видео для выполнения любых анимаций.

Я пробовал этот код, но не знаю, куда поместить видео.mp4

public class MainActivity extends Activity implements
        TextureView.SurfaceTextureListener {

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.activity_main);

        TextureView textureView = (TextureView) findViewById(R.id.textureView1);
        textureView.setSurfaceTextureListener(this);
    }

    public void onSurfaceTextureAvailable(SurfaceTexture surface, int width,
            int height) {
        MediaPlayer mediaPlayer = new MediaPlayer();
        mediaPlayer.setSurface(new Surface(surface));

        try {
            mediaPlayer.setDataSource("video.mp4");
            mediaPlayer.prepare();
            mediaPlayer.start();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    @Override
    public boolean onSurfaceTextureDestroyed(SurfaceTexture arg0) {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public void onSurfaceTextureSizeChanged(SurfaceTexture arg0, int arg1,
            int arg2) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onSurfaceTextureUpdated(SurfaceTexture arg0) {
        // TODO Auto-generated method stub

    }
}

Пожалуйста, помогите мне, предоставив любой рабочий код. Или если мой был правильный то куда в папках размещать видео.мп4.

Заранее спасибо...


person Sri    schedule 22.05.2015    source источник
comment
о каких папках вы говорите?   -  person pskink    schedule 22.05.2015
comment
Я попытался скопировать видео.mp4 в необработанную папку, а также в папку с ресурсами.   -  person Sri    schedule 22.05.2015
comment
используйте полный путь: то, что начинается с /   -  person pskink    schedule 22.05.2015


Ответы (1)


Поместите его в необработанную папку и попробуйте приведенный ниже и посмотрите, поможет ли это.

public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    MediaPlayer mediaPlayer = new MediaPlayer();
    mediaPlayer.setSurface(new Surface(surface));
    try {
        Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.your_raw_file);
        mediaPlayer.setDataSource(this, video);
        mediaPlayer.prepare();
        mediaPlayer.start();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
person dora    schedule 22.05.2015