Как отобразить видео в виде галереи как изображение? - PullRequest
1 голос
/ 31 января 2012

Я создал вид галереи, и я хочу отобразить видео (как и любую ссылку на видео), и я работал так:

http://mihaifonoage.blogspot.com/2009/09/displaying-images-from-sd-card-in.html

, но ничего не отображается.Я провожу весь день, но без результата.Пожалуйста, помогите мне.

Спасибо заранее.

Ответы [ 3 ]

4 голосов
/ 01 февраля 2012

Я получил свой ответ.

Мне нужно создать миниатюры каждого видео и отобразить их в галерее, как это

Bitmap bm = ThumbnailUtils.createVideoThumbnail(path1.getPath()+"/"+filenames1[position], MediaStore.Images.Thumbnails.MINI_KIND); 

и затем каждое видео показывается в галерее как изображение.

2 голосов
/ 31 января 2012

Я не совсем, я получаю то, что вам нужно, но если вы просто хотите открыть одно представление в упражнении, возможно, хорошим способом будет использование намерения ACTION_VIEW - родного способа сделать это.

public void startVideo(String videoAddress){
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
        activity.startActivity(intent);
    }

Однако это намерение побудит ваших пользователей выбрать плеер для видео. В большинстве моих случаев использование тега VideoView оказалось более полезным - просто отображать видео в полноэкранном режиме:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/video_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center" />

</FrameLayout>

Если вы хотите иметь возможность просматривать много видео, вы можете реализовать загрузку нового видео с помощью детекторов жестов:

GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector() {

    @Override
    public void swipeRight() {
        if (currentArticle > 0) {
            currentArticle--;
            loadPage();
        }

    }

    @Override
    public void swipeLeft() {
        if (currentArticle == articleList.size()) {
            return;
        } else {
            currentArticle++;
            loadPage();
        }
    }

});

View.OnTouchListener gestureListener = new View.OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    }
};

Надеюсь, некоторые мои предложения окажутся вам полезны!

0 голосов
/ 02 февраля 2013

Для воспроизведения видео непосредственно из GridView вы должны передать URL-адрес видео в следующей функции

public void playVideo (String url) {

    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("file://" + url), "video/*");
    startActivity(intent);
}
...