2017-05-28 15 views
10

मेरे पास MediaPlayer का उपयोग करके एक ऐप है जो प्रगतिशील डाउनलोड एमपी 3 स्ट्रीम करते समय ठीक काम करता है। मैंने प्रगति डाउनलोड एएसी फ़ाइलों को स्ट्रीम करने के लिए उसी ऐप का उपयोग करने का प्रयास किया है। और यह फाइलें ठीक खेलता है। काम नहीं करता है जब मैं एएसी के साथ MediaPlayer.seekTo() का उपयोग कर स्ट्रीम में चारों ओर जाने की कोशिश करता हूं। यह फिर एमपी 3 में ठीक काम करता है। एएसी स्ट्रीम के लिए यह शून्य पर खेलना शुरू कर देता है।एंड्रॉइड मीडियाप्लेयर का उपयोग कर एएसी को http स्ट्रीम पर खोजने योग्य कैसे बनाया जाए?

मेरी भावना यह है कि एन्कोडिंग संबंधित है। स्ट्रीम करने के लिए उस एएसी फ़ाइल को सही तरीके से कॉन्फ़िगर नहीं किया गया है।

Size: 2.3 MB 
Format: QuickTime/MPEG-4/Motion JPEG 2000 format 
Stream count: 2 
Duration: 00:05:02 
Bit rate: 64 kb/s 
Meta info: 
    album_artist: Red Hot Chili Peppers 
    album: The Getaway 
    minor_version: 512 
    encoder: Lavf57.41.100 
    title: Dark Necessities 
    major_brand: M4V 
    track: 2 
    disc: 1 
    compatible_brands: isomiso2avc1 
    artist: Red Hot Chili Peppers 
    copyright: 2016 Warner Bros. Records Inc. 
    genre: Alternative 

Stream 0 
Type: video 
Codec: h264 
Codec profile: High 10 
FourCC: avc1 
Duration: 00:00:00 
Width: 350 
Height: 350 
Sample aspect ratio: 1:1 
Display aspect ratio: 1:1 
Pixel format: yuv420p10le 
Frame rate: 90000 fps 
Meta info: 
    handler_name: VideoHandler 
    language: und 

Stream 1 
Type: audio 
Codec: aac 
FourCC: mp4a 
Duration: 00:05:02 
Bit rate: 64 kb/s 
Sample rate: 44100 Hz 
Sample format: s16 
Channel: 2 
Meta info: 
    handler_name: SoundHandler 
    language: und 

आप यह वास्तव में AAC ऑडियो और कोई वास्तविक वीडियो के साथ एक वीडियो फ़ाइल शामिल है पर ध्यान देंगे:

यहाँ MediaInfo उपकरण से उत्पादन होता है। यदि ऐसा है तो मुझे लगा कि मुझे यह जानने के लिए और मेटाडेटा की आवश्यकता है कि जब मैं स्ट्रीम के उस हिस्से के लिए पूछूं जहां लोड किया जा सकता है या नहीं। इसके अलावा वीडियो को कहां से खेलना है, यह जानने के लिए कीफ्रेम की आवश्यकता है, इसलिए मेरा मानना ​​है कि धारा/फ़ाइल में कोई भी कुंजीफ्रेम या 'संकेत' बॉक्स शामिल नहीं हैं।

मुझे लापता होने के बारे में कोई वास्तविक जानकारी खोजने के साथ कोई भाग्य नहीं मिला है या यदि यह संभव है या नहीं। मैंने इसे अन्य संस्करणों पर परीक्षण किया है और ऐसा लगता है कि 5.0.2 से पहले यह काम करता था। 5.0.2 के बाद यह काम नहीं करता है। मुझे उस संस्करण में क्या बदलाव आया है इसके बारे में कोई जानकारी नहीं मिली है।

तो यह या तो स्ट्रीम एन्कोडिंग समस्या हो सकती है जो हमें इस फ़ाइल को एक प्रगतिशील डाउनलोड http (s) स्ट्रीम पर स्ट्रीम करने की अनुमति नहीं देती है। या, एंड्रॉइड मीडिया प्लेयर में यह एक बग हो सकता है जो लगभग 5.0.2 टाइमफ्रेम के आसपास बनाया गया था। या यह दोनों हो सकता है।

यह क्यों काम नहीं कर रहा है? Exoplayer साथ

+0

क्या एम 4 ए/एमपी 4 के अंदर मौजूद ऑडियो के बजाय कच्चे एएसी (एडीटीएस हेडर के साथ) आउटपुट स्ट्रीम करने के लिए वैसे भी है? एमपी 3 काम कर रहा है क्योंकि आपको एमपी 3 फ्रेम मिलते हैं (प्रत्येक ध्वनि की कुछ मिलीसेक है) ताकि आप केवल फ्रेम को ढूंढने के लिए छोड़ दें। एएसी भी फ्रेम है (यदि आप कंटेनर के अंदर नहीं डालते हैं)। मैं एंड्रॉइड एसडीके से बहुत परिचित नहीं हूं लेकिन मुझे यकीन है कि आप एसडीके डिकोडर को फ्रेम के बाइट भेज सकते हैं। मैं कुछ विकल्पों की जांच करूंगा। –

+0

मुझे एंड्रॉइड के प्लेयर में एडीटीएस के समर्थन पर मिश्रित संदेश मिल रहे थे इसलिए मुझे यकीन नहीं है कि यह काम करता है या नहीं। मैं जो सुन रहा हूं उसे सुनने की आशा करता हूं। – chubbsondubs

+0

क्या आपके पास जांच के लिए नमूना स्ट्रीम लिंक है? –

उत्तर

1

की कोशिश करें, यह इतना आसान

ExoPlayer है Android के MediaPlayer में बनाया का लाभ होता की एक संख्या है:

  • HTTP पर गतिशील अनुकूली स्ट्रीमिंग के लिए समर्थन (डैश) और SmoothStreaming, न तो जिनमें से MediaPlayer द्वारा समर्थित हैं (यह HTTP लाइव स्ट्रीमिंग (एचएलएस), एमपी 4, एमपी 3, वेबएम, एम 4 ए, एमपीईजी-टीएस और एएसी का भी समर्थन करता है)।
  • उन्नत एचएलएस सुविधाओं के लिए समर्थन, जैसे # EXT-X-DISCONTINUITY टैग की सही हैंडलिंग।
  • अपने उपयोग के मामले के अनुरूप खिलाड़ी को अनुकूलित और विस्तारित करने की क्षमता। ExoPlayer विशेष रूप से इस दिमाग में डिजाइन किया गया है, और कई घटकों को कस्टम कार्यान्वयन के साथ प्रतिस्थापित करने की अनुमति देता है।
  • आसानी से अपने एप्लिकेशन के साथ प्लेयर को अपडेट करें। क्योंकि ExoPlayer एक लाइब्रेरी है जिसे आप अपने एप्लिकेशन एपीके में शामिल करते हैं, आपके पास उस संस्करण पर नियंत्रण है जिसका आप उपयोग करते हैं और आप नियमित एप्लिकेशन अपडेट के हिस्से के रूप में आसानी से एक नए संस्करण में अपडेट कर सकते हैं।
+0

यह दूसरा विकल्प था, लेकिन मैं वास्तव में एंड्रॉइड एसडीके में एएसी स्ट्रीमिंग समर्थन के बारे में एक जवाब में रूचि रखता हूं। मुझे पता है कि मैं अपना मौजूदा कोड निकाल सकता हूं और कोशिश कर सकता हूं और इसे किसी चीज़ से बदल सकता हूं, लेकिन शैतान के लिए जो शैतान आपको पता है, वह वास्तव में स्ट्रीमिंग के बारे में मेरे सवाल का जवाब नहीं दे रहा है। – chubbsondubs

+0

हां, यह स्ट्रीमिंग के लिए वैकल्पिक और वैकल्पिक समाधान है। मुझे आपके इरादे के बारे में खेद है। –

संबंधित मुद्दे