2011-01-03 3 views
11

Я хочу играть в кино с моей SD-карты. Ive пробовал использовать следующий код:Проблема с Android 2.2 VideoView

VideoView videoView = (VideoView) findViewById(R.id.videoView); 

final String MEDIA_PATH = new String("/sdcard/robot.avi"); 

MediaController mediaController = new MediaController(this); 

mediaController.setAnchorView(videoView); 

videoView.setVideoPath(MEDIA_PATH); 

videoView.setMediaController(mediaController); 

videoView.start(); 

Но когда я пытаюсь воспроизвести файл, я получаю сообщение об ошибке. «видео не найдено» или что-то подобное. Когда я попробовал потоковое вещание из Интернета, видео работало, но было очень лаги. Какой способ воспроизведения видео в моем приложении?

Благодаря

ответ

2

Может быть AVI не поддерживает в android.convert него в mp4 или WMV или 3gp. попробовать этот код

public class VideoPlayActivity extends Activity { 
private VideoView video; 
private MediaController ctlr; 

@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
getWindow().setFormat(PixelFormat.TRANSLUCENT); 
setContentView(R.layout.main); 

File clip=new File(Environment.getExternalStorageDirectory(), 
        "robot.mp4"); 

if (clip.exists()) { 
    video=(VideoView)findViewById(R.id.video); 
    video.setVideoPath(clip.getAbsolutePath()); 

    ctlr=new MediaController(this); 
    ctlr.setMediaPlayer(video); 
    video.setMediaController(ctlr); 
    video.requestFocus(); 
    video.start(); 
} 
} 
} 
+0

два ответа на один вопрос. должен обновить его только – Ishu

3

Используйте этот code.Hope он будет работать

public class VideoPlayActivity extends Activity { 
private VideoView video; 
private MediaController ctlr; 

@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
getWindow().setFormat(PixelFormat.TRANSLUCENT); 
setContentView(R.layout.main); 

File clip=new File(Environment.getExternalStorageDirectory(), 
       "haha.mp4"); 


if (clip.exists()) { 
video=(VideoView)findViewById(R.id.video); 
video.setVideoPath(clip.getAbsolutePath()); 

ctlr=new MediaController(this); 
ctlr.setMediaPlayer(video); 
video.setMediaController(ctlr); 
video.requestFocus(); 
video.start(); 
} 
} 
} 
2

Вы играете видео в свой собственный VideoView, Но если у вас нет ничего, чтобы настроить и просто хочу, чтобы показать видео на экране, почему вы не используете проигрыватель по умолчанию для воспроизведения видео.

File imgFile = new File(Environment.getExternalStorageDirectory()+"FileName"); 
//make sure the video is in SDCard, 
//if its located in any folder care to pass full absolute path 
Intent tostart = new Intent(Intent.ACTION_VIEW); 
tostart.setDataAndType(Uri.parse(imgFile.getPath()), "video/*"); 
startActivity(tostart); 
5

Замечено, что setVideoPath() терпит неудачу, в то время как setVideoURI() хорошо работает как для Web и местного поэтому я настаиваю, чтобы использовать это.

VideoView videoView = (VideoView) findViewById(R.id.videoView); 

    final String MEDIA_PATH = new String("file:///sdcard/robot.avi"); 

    MediaController mediaController = new MediaController(this); 

    mediaController.setAnchorView(videoView); 

    videoView.setVideoURI(MEDIA_PATH); 

    videoView.setMediaController(mediaController); 

    videoView.start(); 
9

Попробуйте это ...

VideoView videoView = (VideoView) findViewById(R.id.videoView); 

final String MEDIA_PATH = new String(Environment.getExternalStorageDirectory()+"/sdcard/robot.avi"); 

MediaController mediaController = new MediaController(this); 

mediaController.setAnchorView(videoView); 

videoView.setVideoPath(MEDIA_PATH); 

videoView.setMediaController(mediaController); 

videoView.start(); 
3

Попробуйте с

video_view.setVideoURI(Uri.parse(path)); 

вы не можете передать непосредственно в виде строки путь, если вы пытаетесь установить в качестве URI. Код, который работает хорошо для меня:

path = Environment.getExternalStorageDirectory() + "/file_name"; 

    // Add controls to a MediaPlayer like play, pause. 
    MediaController mc = new MediaController(this); 
    video_view.setMediaController(mc); 

    // Set the path of Video or URI. 
    video_view.setVideoURI(Uri.parse(path)); 

    // Set the focus. 
    video_view.requestFocus(); 

    video_view.start(); 
3

ваша проблема заключается в том, что видео путь не задан правильный путь:

просто переключиться на этот код:

final String MEDIA_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/robot.avi"; 

, который будет решать ваша проблема, если видеоролик «robot.avi» существует в корневой папке SD-карты

Смежные вопросы