2010-04-12 2 views
32

Я начинаю разработку Android и пытаюсь воспроизвести видео со ссылкой. Но он дает ошибку "sorry,we can't play this video". Я пробовал так много ссылок, но для всех ссылок его показывают ту же ошибку.как играть видео с url

Мой код выглядит следующим образом

public class VideoDemo extends Activity { 

     private static final String path ="http://demo.digi-corp.com/S2LWebservice/Resources/SampleVideo.mp4"; 
private VideoView video; 
private MediaController ctlr; 
@Override 
public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 
      getWindow().setFormat(PixelFormat.TRANSLUCENT); 
      setContentView(R.layout.videoview); 

      video = (VideoView) findViewById(R.id.video); 
      video.setVideoPath(path); 

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

Logcat показывает следующее сообщение об ошибке:

04-12 15:04:54.245: ERROR/PlayerDriver(554): HandleErrorEvent: PVMFErrTimeout 
+0

Похож на вопрос с форматом для меня. Это может помочь увидеть фактическое сообщение об ошибке консоли с помощью callstack, не могли бы вы вставить полный вывод logcat? –

+0

попробуйте использовать setVideoPath вместо –

ответ

6

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

String LINK = "type_here_the_link"; 
setContentView(R.layout.mediaplayer); 
VideoView videoView = (VideoView) findViewById(R.id.video); 
MediaController mc = new MediaController(this); 
mc.setAnchorView(videoView); 
mc.setMediaPlayer(videoView); 
Uri video = Uri.parse(LINK); 
videoView.setMediaController(mc); 
videoView.setVideoURI(video); 
videoView.start(); 
+4

это не правильно работа – Android

39

Это что-то делать с вашей ссылке и содержание. Попробуйте следующие две ссылки:

String path="http://www.ted.com/talks/download/video/8584/talk/761"; 
    String path1="http://commonsware.com/misc/test2.3gp"; 

    Uri uri=Uri.parse(path1); 

    VideoView video=(VideoView)findViewById(R.id.VideoView01); 
    video.setVideoURI(uri); 
    video.start(); 

Начните с «path1», это небольшой легкий вес видеопоток, а затем попробовать «путь», это более высокое разрешение, чем «path1», совершенное с высоким разрешением для мобильный телефон.

+4

это не работает – Android

+0

Вторая работала, но первая этого не делала. – Amt87

+0

это показывает can not paly это видео :( – Rojesh

28

У вас есть разрешения для доступа в Интернет?

+1

То, что исправила мою проблему. Добавить разрешения для Интернета и wala, он работал – Shaun

+0

Это устранило мою проблему. Проблема заключалась в том, что VideoView работал нормально без этого разрешения на более раннем устройстве с fw 2.2. Но на ICS это требует разрешения на доступ в Интернет. –

+0

Я добавляю прохождение Интернета в Manifest nad it works fin в 3G, но не работает wif WIFI Ivan

4
pDialog = new ProgressDialog(this); 

    // Set progressbar message 
    pDialog.setMessage("Buffering..."); 
    pDialog.setIndeterminate(false); 
    pDialog.setCancelable(false); 
    // Show progressbar 
    pDialog.show(); 

    try { 
     // Start the MediaController 
     MediaController mediacontroller = new MediaController(this); 
     mediacontroller.setAnchorView(mVideoView);  

     Uri videoUri = Uri.parse(videoUrl); 
     mVideoView.setMediaController(mediacontroller); 
     mVideoView.setVideoURI(videoUri); 

    } catch (Exception e) { 

     e.printStackTrace(); 
    } 

    mVideoView.requestFocus(); 
    mVideoView.setOnPreparedListener(new OnPreparedListener() { 
     // Close the progress bar and play the video 
     public void onPrepared(MediaPlayer mp) { 
      pDialog.dismiss(); 
      mVideoView.start(); 
     } 
    }); 
    mVideoView.setOnCompletionListener(new OnCompletionListener() { 

     public void onCompletion(MediaPlayer mp) { 
      if (pDialog.isShowing()) { 
       pDialog.dismiss(); 
      } 
      finish();    
     } 
    }); 
1

пожалуйста, проверьте эту ссылку: http://developer.android.com/guide/appendix/media-formats.html

VideoView не может поддерживать некоторые кодек.

я предложил использовать медиаплеер, когда получит «извините, не может играть видео»

4

Вы можете сделать это с помощью FullscreenVideoView класса. Это небольшой проект библиотеки. Это диалог прогресса видео встраивать это Gradle является:.

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.0' 

ваш VideoView XML, как это

<com.github.rtoshiro.view.video.FullscreenVideoLayout 
     android:id="@+id/videoview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

В вашей деятельности, инициализировать его, используя этот путь:

FullscreenVideoLayout videoLayout; 

videoLayout = (FullscreenVideoLayout) findViewById(R.id.videoview); 
     videoLayout.setActivity(this); 

     Uri videoUri = Uri.parse("YOUR_VIDEO_URL"); 
     try { 
      videoLayout.setVideoURI(videoUri); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

Это Это. Счастливый кодирования :)

Если хотите узнать больше, то посетите here

Edit: Gradle путь был обновлен. скомпилировать его сейчас

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.2' 
+0

Библиотека @Sajedul хороша, но после игры в течение нескольких секунд она перестанет играть. MediaPlayer: ошибка (1, -1004) будет напечатана в logcat. почему это так? Я пытаюсь воспроизвести это видео http://sharemyideo.esy.es/upload/videos/922a4a6a4e370acb94c84fe0039c66f2.mp4. –

+0

они добавили новый релиз в свой стабильный канал. Можете ли вы обновить путь градиента compile 'com.github.rtoshiro.fullscreenvideoview: fullscreenvideoview: 1.1.2' Надеюсь, это решит вашу проблему. –

+0

будет поддерживать оба ** Youtube ** и ** Vimeo ** URL? – Shihas

-1

Проверьте, поддерживает ли ваш телефон в формате видео или not.Even меня была проблема при воспроизведении файла 3gp, но он играл файл mp4 отлично.

1

Я также застрял в этой проблеме. Я получил правильный ответ от сервера, но не смог воспроизвести видео. После долгого времени я нашел решение here. Возможно, в будущем эта ссылка будет недействительной. Итак, вот мой правильный код

Uri video = Uri.parse("Your link should be in this place "); 
    mVideoView.setVideoURI(video); 

    mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code 
    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mediaPlayer) { 
    // here write another part of code, which provides starting the video 
    }} 
Смежные вопросы