Android воспроизводит файлы фильмов в живых обоях - PullRequest
13 голосов
/ 03 мая 2011

Возможно ли это вообще? Я пытался использовать MediaPlayer, но он вызывает исключение NullPointerException для объекта MediaPlayer. Я могу заставить звук работать, но видео не работает.

 mp=MediaPlayer.create(getApplicationContext(), R.raw.sample);
 mp.start();
 mp.setOnCompletionListener(new OnCompletionListener() 
 {
     public void onCompletion(MediaPlayer mp) {
          mp.release();
          playing = false;
     }
 });

образец относится к типу .mp4.

У кого-нибудь есть представление о том, почему это происходит, или у вас есть предложение по другому способу воспроизведения видео?

Ответы [ 2 ]

3 голосов
/ 03 июля 2012

Вы можете использовать следующий код

VideoView videoView;
    VideoView = (VideoView) findViewById (R.id.txt1);
    videoView.setVideoPath(path);
    videoView.setVisibility(VideoView.VISIBLE);
videoView.start();

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

1 голос
/ 10 декабря 2012

Раньше не пробовал, но я думаю, что вы можете использовать полностью бесплатную среду vlcj, которая может эффективно воспроизводить практически любой тип видео (и, конечно, воспроизводит видеофайлы .mp4). Я не могу дать вам никакого кода в Android потому что никогда не работал с Android, но я знаю Java, и это просто работает. Итак, что я использую в Java:

NativeLibrary.addSearchPath("libvlc",path); //To set path of libvlc
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);//To import libvlc
//The path can be a folder in your android project.All the files needed are in vlc player installation folder.so yes you have to install vlc in your computer to get those files but just once.
canvas = new WindowsCanvas();
panel.add(canvas);//panel is like your VideoView
canvas.setVisible(true);
canvas.setBackground(Color.black);

mediaPlayerFactory = new MediaPlayerFactory();
player12 = mediaPlayerFactory.newEmbeddedMediaPlayer();
CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
player12.setVideoSurface(videoSurface);
player12.setPlaySubItems(true);
player12.startMedia(yourVideoPath); 

player12.setAspectRatio(""+panel.getWidth()+":"+panel.getHeight()); //Those two lines are for your video to be adusted in your panel or better to your VideoView
player12.setCropGeometry(""+panel.getWidth()+":"+panel.getHeight()); 

JAR-файлы, которые вы должны включить в ваш classpath: jna-3.4.0.jar, platform-3.4.0.jar, vlcj-2.1.0.jar

...