日食中的VideoView无法在手机上播放

我在eclipse中为Android应用程序添加了一个video,但video无法在我的手机上播放。

package test.test; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.widget.MediaController; import android.widget.VideoView; public class graphics extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); VideoView videoView = (VideoView) findViewById(R.id.test); MediaController mediaController = new MediaController (this); mediaController.setAnchorView(videoView); Uri video = Uri.parse("http://commonsware.com/misc/test2.3gp"); videoView.setMediaController(mediaController); videoView.setVideoURI(video); videoView.start(); } } 

我认为问题在于连接(http)或VideoView使用。

要知道连接是否是问题,您可以尝试播放手机本地的媒体内容,即从SD卡播放。

问题也来自VideoView的使用

VideoView类使用SurfaceView和MediaPlayer实现video播放。 MediaPlayer有API来设置url,准备媒体管道,启动管道等。但是在管道启动之前; 管道必须准备好,即在预卷状态。 为了通知应用程序,MediaPlayer提供了监听器。 在这种情况下,它是onPrepareListener。 与MediaPlayer交互的VideoView(也必须?)也提供这些监听器。

看一下使用VideoView进行播放的VideoPlayer活动的代码。 (仅对本地内容进行validation)此活动采用从意图播放的文件的绝对路径。 (从列表活动传递)

 import android.app.Activity; import android.content.Intent; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnPreparedListener; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.MediaController; import android.widget.VideoView; public class VideoPlayer extends Activity implements OnCompletionListener, OnPreparedListener { private static VideoView vView; private String filePath; public static long clipDurationMS; private View mLoadingIndicator; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main); vView = (VideoView)findViewById(R.id.VideoView01); mLoadingIndicator = findViewById(R.id.progress_indicator); vView.setBackgroundColor(0x0000); Intent intent = getIntent(); Bundle extras = intent.getExtras(); filePath = (String)extras.get("URL"); vView.setVideoPath(filePath); MediaController mc; mc = new MediaController(this); vView.setMediaController(mc); vView.requestFocus(); vView.setOnCompletionListener(this); vView.setOnPreparedListener(this); } public void onCompletion(MediaPlayer arg0) { finish(); } public void onPrepared(MediaPlayer arg0) { mLoadingIndicator.setVisibility(View.GONE); ViewGroup.LayoutParams params; params = vView.getLayoutParams(); params.height = arg0.getVideoHeight(); params.width = arg0.getVideoWidth(); vView.setLayoutParams(params); vView.start(); } public void onStop(){ super.onStop(); vView.stopPlayback(); finish(); } } 

词shash

检查您的手机是否已连接到Internet连接。 在我看来,这可能是一个问题,因为你正试图从Uri播放video。