2012-04-10 110 views
-1

我必须在启动我的应用程序时播放视频。 我希望它是本地的,但它太大,不能转换为原始(11秒),我必须让我的应用程序更轻。而且因为它是一个闪屏,我不需要媒体控制器。启动画面,播放mp4

我不知道这样做的最佳方式是什么,如果我是对的,VideoView无法理解直接mp4。 有没有人这样做?

public class SplashScreenActivity extends Activity{ 
    private VideoView myVideoView; 
    private MediaPlayer mediaPlayer; 
    private MediaController mediaController; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.video_player_layout); 


     myVideoView = (VideoView) findViewById(R.id.video_player_video_view); 
//  mediaController = new MediaController(this); 

     myVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.splash)); 
//  myVideoView.setMediaController(mediaController); 
     myVideoView.requestFocus(); 
     myVideoView.start(); 

    } 
} 

编辑:有媒体播放器,它停留在错误状态

MediaPlayer mp = MediaPlayer.create(this, R.raw.splash); 
     mp.setOnCompletionListener(this); 
     mp.start(); 
+0

为什么是大小的问题吗?如果需要,就把它放在扩展项目中。如果尺寸是一个非常大的问题,你不应该有一个视频飞溅。 – Warpzit 2012-04-10 15:52:40

+0

我想说我不想把它翻译成原始的,我知道我会把它放在我的项目中,但我认为mp4并不是红色的VideoViews – 2012-04-10 15:55:24

+0

对不起,不能帮助你,它支持哪种格式。 – Warpzit 2012-04-10 16:00:39

回答

1
myVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName()+"/"+R.raw.splash)); 

通过以下替换上面一行,并尝试..

String path = "android.resource://" + getPackageName()+"/raw/splash"; 
myVideoView.setVideoURI(Uri.parse(path)); 
myVideoView.setVideoPath(getDataSource(path)); 
+0

你好,thx对于那个延迟而言很遗憾,但是getDataSource方法从哪个对象来? – 2012-04-11 07:43:45

+0

只是尝试评论该行 – 2012-04-11 07:52:59

+0

它不起作用,当我评论它 – 2012-04-11 07:54:21