android - कैसे यूआरएल से वीडियो खेलने के लिए




video-streaming android-videoview (6)

मैं Android विकास में शुरुआत कर रहा हूं और लिंक से वीडियो चलाने की कोशिश करता हूं। लेकिन यह त्रुटि दे रहा है "sorry,we can't play this video" । मैंने बहुत सारे लिंक की कोशिश की, लेकिन सभी लिंक के लिए इसकी त्रुटि समान है।

मेरा कोड निम्नलिखित है

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

Exoplayer2 का प्रयास करें

https://github.com/google/ExoPlayer

यह अत्यधिक अनुकूलन योग्य है

    private void initializePlayer() {
         player = ExoPlayerFactory.newSimpleInstance(
             new DefaultRenderersFactory(this),
             new DefaultTrackSelector(), new DefaultLoadControl());

         playerView.setPlayer(player);

         player.setPlayWhenReady(playWhenReady);
         player.seekTo(currentWindow, playbackPosition);

Uri uri = Uri.parse(getString(R.string.media_url_mp3));
     MediaSource mediaSource = buildMediaSource(uri);
     player.prepare(mediaSource, true, false);
    }

private MediaSource buildMediaSource(Uri uri) {
  return new ExtractorMediaSource.Factory(
      new DefaultHttpDataSourceFactory("exoplayer-codelab")).
      createMediaSource(uri);
}

@Override
public void onStart() {
 super.onStart();
 if (Util.SDK_INT > 23) {
   initializePlayer();
 }
}

अधिक जानकारी के लिए इस url की जाँच करें

https://codelabs.developers.google.com/codelabs/exoplayer-intro/#2


आप इसे FullscreenVideoView वर्ग का उपयोग करके कर सकते हैं। इसकी एक छोटी सी लाइब्रेरी परियोजना है। यह वीडियो प्रगति संवाद है जिसमें निर्माण होता है। यह ग्रेडेल है:

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 जाएं

संपादित करें: gradle पाथ को अपडेट कर दिया गया है। अब इसे संकलित करें

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

कृपया इस लिंक की जाँच करें: http://developer.android.com/guide/appendix/media-formats.html

वीडियोव्यू कुछ कोडेक का समर्थन नहीं कर सकता।

मैंने आपको सुझाव दिया था कि जब आप "सॉरी, वीडियो नहीं चला सकते"


जांचें कि आपका फ़ोन वीडियो प्रारूप का समर्थन करता है या नहीं। मुझे एक 3gp फ़ाइल चलाते समय समस्या थी, लेकिन इसने एक mp4 फ़ाइल पूरी तरह से खेली।


यह आपके लिंक और सामग्री के साथ कुछ करना है। निम्नलिखित दो लिंक आज़माएं:

    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();

"पाथ 1" से शुरू करें, यह एक छोटा हल्का वीडियो स्ट्रीम है और फिर "पथ" आज़माएं, यह "पाथ 1" की तुलना में एक उच्च रिज़ॉल्यूशन है, जो मोबाइल फ़ोन के लिए एक उच्च रिज़ॉल्यूशन है।


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();               
        }
    });




android-videoview