2013-02-07 29 views
8

मैं एक मूल एंड्रॉइड एप्लिकेशन पर काम कर रहा हूं जो एचएलएस वीडियो स्ट्रीम करता है। मैं प्रदर्शित करने के लिए सीईए -608 बंद कैप्शन डेटा प्राप्त करने की कोशिश कर रहा हूं, लेकिन मैं एक समस्या में भाग रहा हूं।एंड्रॉइड पर एचएलएस धाराओं के लिए बंद कैप्शन प्रस्तुत करना

पद्धति: मैं एक जेली बीन डिवाइस (एपीआई 4.1+) है, जो बंद कैप्शन और एचएलएस प्लेबैक (http://developer.android.com/about/versions/android-4.1.html#Multimedia) का समर्थन करता है पर चल रहा हूँ।

टेस्ट फ़ीड: मैं एप्पल नमूना एचएलएस BIP-बॉप फ़ीड कि कैप्शन डेटा होता है (https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8)

हथियाने कैप्शन डेटा का उपयोग कर परीक्षण कर रहा हूँ: Android दस्तावेज़ के अनुसार, मैं कर रहा हूँ फोन करके कैप्शन ट्रैक प्राप्त करने का प्रयास:

"MediaPlayer.getTrackInfo()"

समस्या: खिलाड़ी दुर्घटनाओं जब मैं getTrackInfo() लाइन पर अमल, LogCat में निम्नलिखित उत्पादन के साथ:

ई/AndroidRuntime (7311): गंभीर अपवाद: मुख्य ई/AndroidRuntime (7311): java.lang.RuntimeException: विफलता कोड: -38

सवाल: 1) एक एचएलएस फ़ीड पर इन-स्ट्रीम शीर्षक डेटा से बंद शीर्षक प्रतिपादन देशी Android क्षुधा में समर्थित है? 2) यदि नहीं, तो क्या विकल्प हैं? 3) उपरोक्त लिंक (नीचे उद्धृत) में प्रलेखन इंगित करता है कि MP4 या 3GPP मीडिया स्रोतों पर इन-स्ट्रीम कैप्शन समर्थित हैं। क्या यह आवश्यक रूप से एचएलएस को छोड़ देता है (जो मुझे लगता है कि एमपीईजी -2 आधारित है) काम करने से?

मीडियाप्लेयर अब इन-बैंड और आउट-ऑफ-बैंड टेक्स्ट ट्रैक दोनों को संभालता है। इन-बैंड टेक्स्ट ट्रैक MP4 या 3GPP मीडिया स्रोत के भीतर टेक्स्ट ट्रैक के रूप में आते हैं। आउट-ऑफ-बैंड टेक्स्ट ट्रैक को बाहरी टेक्स्ट स्रोत के रूप में addTimedTextSource() विधि के माध्यम से जोड़ा जा सकता है। सभी बाहरी टेक्स्ट ट्रैक स्रोत जोड़े जाने के बाद, डेटा स्रोत में सभी उपलब्ध पटरियों की ताज़ा सूची प्राप्त करने के लिए getTrackInfo() को कॉल किया जाना चाहिए।

आपकी सहायता के लिए धन्यवाद!

उत्तर

5

हम बिल्कुल उसी अभ्यास के माध्यम से गए। एंड्रॉइड पर मीडियाप्लेयर एचएलएस में एम्बेडेड सीईए -608 का समर्थन नहीं करता है। मीडिया प्लेयर (एमपी) खेल रहा था जब OnTimedTextListener कभी नहीं कहा गया था। GetTrackInfo() को कॉल करने का प्रयास करने पर जब एमपी का खेल रहा था तो आपने दुर्घटनाग्रस्त हो गया था जैसा आपने बताया था।

एंड्रॉइड एमपी एमपी एमपी 4 में केवल एसआरटी को डीकोड कर सकता है।

वैकल्पिक समय-समय पर टेक्स्ट ट्रैक का उपयोग करना होगा, लेकिन लाइव स्ट्रीमिंग वातावरण में, यह मुश्किल होगा।

+1

क्या आपको पता है कि एंड्रॉइड के नए संस्करण वेबवीटीटी उपशीर्षक का समर्थन करते हैं जिन्हें हाल ही में एचएलएस ड्राफ्ट स्पेक में जोड़ा गया था? – vipw

0

सवाल काफी पुराना है, लेकिन कुछ लोगों को अभी भी समस्या का सामना करना पड़ सकता है।

ExoPlayer एंड्रॉइड संस्करण स्वतंत्र सामान्य मल्टीमीडिया लाइब्रेरी के रूप में इस मुद्दे को हल करने का प्रयास करता है।

यह वर्तमान में सीईए -608, सब्रिप, टीटीएमएल, TX3g और वेबवेट उपशीर्षक का समर्थन करता है। बेशक पूरी तरह से सभी मानकों, लेकिन उनमें से एक उपयोगी हिस्सा नहीं है।