2016-08-04 13 views
14

स्ट्रीम नहीं कर सकते यहाँ मेरी videoview कोड है:वीडियो

Uri uri = Uri.parse(vidurl); 
    MediaController mediaController = new MediaController(this); 
    videoView.setMediaController(mediaController); 
    videoView.requestFocus(); 
    videoView.setVideoURI(uri); 

    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      videoView.start(); 
     } 
    }); 

वीडियो मैं अपने सर्वर में जमा हो जाती खेलने की कोशिश। कस्टम कैमरा का उपयोग करके उन्हें एक ही ऐप से वहां भेजा जाता है। यहाँ वीडियो कैप्चरिंग मानकों है: (उन के साथ गलत थे शायद ज़रुरत कुछ में, मैं हर संयोजन की कोशिश की, VP8 प्रारूप, धारा किया छोड़कर उत्पादन कोई ऑडियो था और बग़ल में घुमाया गया)

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); 
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 

    if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK) { 
     mMediaRecorder.setOrientationHint(90); 
    } else { 
     mMediaRecorder.setOrientationHint(270); 
    } 

    mMediaRecorder.setVideoSize(list.get(sizex).width, list.get(sizex).height); 
    mMediaRecorder.setVideoEncodingBitRate(1500000); 
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC); 
    mMediaRecorder.setVideoFrameRate(30); 
    mMediaRecorder.setMaxDuration(15000); 
    mMediaRecorder.setOutputFile(getVidFile().getAbsolutePath()); 

मैं करने की कोशिश कर रहा है इसे लंबे समय तक हल करें लेकिन अब मैं विचारों से बाहर हूं। मैं उन वीडियो को videoview में स्ट्रीम करना चाहता हूं। लेकिन इसके बजाय, मुझे 10-20 सेकंड इंतजार करना होगा। उसके बाद, या तो वीडियो शुरू होता है या यह मुझे एक त्रुटि देता है कि वीडियो नहीं खेला जा सकता है।

अतिरिक्त जानकारी:

परियोजना न्यूनतम एसडीके 18 है, लेकिन यह है कि अगर मदद मिलेगी मैं इसे बदल सकते हैं।

मेरे परीक्षण उपकरण Asus जेनफोन 2 (5,0)

मैं किसी भी अन्य डिवाइस

वीडियो GoDaddy linux मेजबान में जमा हो जाती, जिनकी जांच नहीं किया है। www.mydomain.com/videos/

वीडियो एन्कोडिंग बेसलाइन प्रोफ़ाइल H264 है

Moov परमाणु शीर्ष पर है (fytp (या ऐसा ही कुछ) के बाद) की सिफारिश की

बस के रूप में मैं तीसरे पक्ष के वीडियो का उपयोग करने की कोशिश की exomedia

कुछ वीडियो की तरह खिलाड़ी पुस्तकालयों, काम करते हैं, उदाहरण के लिए:

http://www.html5videoplayer.net/videos/toystory.mp4

मैंने वीडियो एन्कोडिंग की जांच की। यह h264 मुख्य प्रोफाइल में एन्कोड किया गया है (मेरे शोध से, मुख्य प्रोफ़ाइल एंड्रॉइड उपकरणों के अधिकांश के लिए समर्थित नहीं है, इसके बजाय बेसलाइन प्रोफाइल की सिफारिश की जाती है) और मूव एटीओएम अंतिम स्थिति में है। लेकिन यह वीडियो बस ठीक खेलता है ... dafuq?

संपादित करें: कि toystory वीडियो के गुण जो काम करता है:

1

2

और यहाँ एक वीडियो ऊपर दिए गए parameteres के साथ अपने app से कब्जा कर लिया है (नोटिस Moov परमाणु सही जगह पर है , लेकिन यह अभी भी काम नहीं करता है)

3

4

+0

कोई त्रुटि जो आपको पता है ?? Videoview.start() का उपयोग mp.start() –

+1

का उपयोग करें अब मैंने सतहदृश्य का उपयोग करके mediplayer का उपयोग करने की कोशिश की है और तैयार() के बजाय readyasync को कॉल करना भूल नहीं है, अभी भी काम नहीं किया है। ई/मीडियाप्लेयर: त्रुटि (1, -2147483648) – user6650650

उत्तर

1

आपका वीडियो सर्वर से ऐप पर स्ट्रीम होने पर कौन सा नेटवर्क प्रोटोकॉल उपयोग किया जाता है? शायद आप जिस नेटवर्क प्रोटोकॉल का उपयोग कर रहे हैं वह VideoView द्वारा समर्थित नहीं है। वीडियो व्यू केवल सीमित प्रोटोकॉल का समर्थन करता है। "समर्थित मीडिया प्रारूपों" पर एंड्रॉयड दस्तावेजों के अनुसार:

--RTSP (आरटीपी, SDP)

--http/HTTPS प्रगतिशील:

निम्नलिखित नेटवर्क प्रोटोकॉल ऑडियो और वीडियो प्लेबैक के लिए समर्थन कर रहे स्ट्रीमिंग --http/HTTPS लाइव स्ट्रीमिंग का मसौदा प्रोटोकॉल:

MPEG-2 TS media files only 

Protocol version 3 (Android 4.0 and above) 

Protocol version 2 (Android 3.x) 

Not supported before Android 3.0 

--Note: HTTPS एंड्रॉयड 3.1 से पहले समर्थित नहीं है।

+0

मुझे नहीं पता कि नेटवर्क प्रोटोकॉल क्या है। मैं कैसे जांचूं कि मैं किसका उपयोग कर रहा हूं? – user6650650

+0

यह एक Google प्रश्न है – Christopher

+0

फिर से आपके प्रश्न की जांच करने के बाद, मुझे लगता है कि नेटवर्क प्रोटोकॉल प्रोजेक्टिव http है। यह कोई समस्या नहीं होनी चाहिए। आपके जैसे प्रश्न हैं: http: //stackoverflow.com/questions/11540076/android-mediaplayer-error-1-2147483648 और http://stackoverflow.com/questions/4728085/cannot-play-certain-videos। उनके उत्तरों ने "3 जीपीपी और एमपीईजी -4 कंटेनरों के लिए, moov परमाणु किसी भी एमडीएटी परमाणुओं से पहले होना चाहिए, लेकिन ftyp परमाणु सफल होना चाहिए।" आपके प्रश्न में, आपने अपनी कॉन्फ़िगरेशन का उल्लेख किया है "मूव परमाणु शीर्ष पर है (fytp (या ऐसा कुछ) के बाद)" .यह समस्या है। –