如何从SD卡播放视频文件

时间:2012-07-10 04:27:55

标签: android media-player android-videoview

我想在Android模拟器上播放我存储在SD卡中的视频文件。 这是我的代码..

public class AndroidVideoViewActivity extends Activity {

    private VideoView videoView=null;
    private String PATH="mnt/sdcard/bmxskills.3gp";
    private MediaPlayer mediaPlayer=null;
    private MediaController mediaController=null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        VideoView videoView=(VideoView)findViewById(R.id.videoView);
        videoView.setVideoPath("mnt/sdcard/bmxskills.3gp");

        videoView.setMediaController(mediaController);
        videoView.requestFocus();
        videoView.start();

    }
}

但是当我在模拟器上运行时它显示空白屏幕。请帮助。我已经添加了所需的权限,即互联网和外部存储。

3 个答案:

答案 0 :(得分:5)

请检查this link

替换videoView.setVideoPath("mnt/sdcard/bmxskills.3gp");

videoView.setVideoPath("/sdcard/bmxskills.3gp");

答案 1 :(得分:3)

使用以下代码。

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello"/>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <VideoView
            android:id="@+id/myvideoview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>

MainActivity.java

public class MainActivity extends Activity {

    String SrcPath = "/sdcard/Video/Android in Spaaaaaace!_low.mp4";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        VideoView myVideoView = (VideoView)findViewById(R.id.myvideoview);
        myVideoView.setVideoPath(SrcPath);
        myVideoView.setMediaController(new MediaController(this));
        myVideoView.requestFocus();
        myVideoView.start();
    }
}

答案 2 :(得分:1)

您不应该在模拟器本身上测试运行视频,如果您有设备,请使用它。 Android模拟器在正确处理视频时非常糟糕,因此您可能会遇到许多通常不会在任何Android设备上出现的问题。