Видео — использовать VideoView/MediaPlayer или намерение.action_view и выбор пользователя?

Простите, если это вопрос новичка, но...

При воспроизведении видео лучше использовать VideoView/MediaPlayer или лучше использовать намерение.ACTION_VIEW и позволить пользователю выбирать свой медиаплеер?

Видео, которые мне нужно воспроизвести, представляют собой очень большие файлы mp4 (20–50+ мегабайт), которые не оптимизированы для мобильных устройств. У меня проблемы с буферизацией при использовании VideoView/MediaPlayer. Однако, когда я использую намерение.ACTION_VIEW, я могу использовать что-то вроде RealPlayer, который лучше справляется с буферизацией (по крайней мере, в моем случае). Кроме того, RealPlayer и другие проигрыватели, которые я пробовал, обрабатывают изменения ориентации без перезапуска видео, как это делают VideoView/MediaPlayer. Однако я не знаю, является ли этот второй подход «приемлемым» с точки зрения взаимодействия с пользователем.

Вот код для моего подхода VideoView/MediaPlayer:

XML:

<VideoView android:id="@+id/videoView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

Ява:

public class VideoViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
        VideoView videoView = (VideoView) findViewById(R.id.videoView);
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        Uri video = Uri.parse("http://www.my.big.video.com/video.mp4");
        videoView.setMediaController(mediaController);
        videoView.setVideoURI(video);
        videoView.start();
}

И вот код для моего второго подхода:

Ява:

public class VideoViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String videoUrl = "http://www.my.big.video.com/video.mp4";
        Intent i = new Intent(Intent.ACTION_VIEW);  
        i.setData(Uri.parse(videoUrl));  
        startActivity(i); 
}

Предложения?


person user359519    schedule 02.02.2011    source источник


Ответы (1)


Вы не можете предполагать, что у пользователя есть RealPlayer или любой другой конкретный медиаплеер, поэтому этот подход надеется, что намерение откроет медиаплеер, который сможет хорошо обрабатывать файл. Чтобы избежать проблемы с изменением ориентации, я заблокировал альбомную ориентацию VideoView на альбомную (кто все равно хочет смотреть видео в портретной ориентации?). Я уверен, что это считается дешевым выходом, но он работает.

person Cameron    schedule 03.02.2011
comment
Спасибо. Но я боялся, что кто-нибудь это скажет. ржу не могу. Блокировка в альбомной ориентации звучит как быстрое и простое решение. Буферизация - еще одна проблема. Я осмотрюсь. - person user359519; 05.02.2011