2015-06-04 17 views
8

पर छवि (फोटो) कास्ट करें I क्रोमकास्ट के लिए एक प्रेषक एंड्रॉइड एप्लिकेशन बनाने के लिए इन (1, 2) मार्गदर्शिका का अनुसरण कर रहा हूं और मुझे केवल चित्र भेजने में रूचि है। वहाँ informaton और samplesपाठ, ऑडियो और वीडियो कास्ट करने के लिए कैसे का एक बहुत हैं। लेकिन चित्रों के साथ एक शब्द नहीं,क्रोमकास्ट

मैं स्टैकफोर्फ़्लो की शक्ति में विश्वास करता हूं और किसी को ऐसी समस्या का सामना करना चाहिए था। कृपया कुछ अच्छा नमूना या ट्यूटोरियल दें। मुझे केवल Media Router और इसकी विशेषताओं का उपयोग करके पूर्णस्क्रीन चित्र डालने की मार्गदर्शिका है।

/** 
* Send a text message to the receiver 
*/ 
private void sendMessage(String message) { 
    if (mApiClient != null && mSmartBusChannel != null) { 
     try { 
      Cast.CastApi.sendMessage(mApiClient, 
        mSmartBusChannel.getNamespace(), message) 
        .setResultCallback(new ResultCallback<Status>() { 
         @Override 
         public void onResult(Status result) { 
          if (!result.isSuccess()) { 
           Log.e(TAG, "Sending message failed"); 
          } 
         } 
        }); 
     } catch (Exception e) { 
      Log.e(TAG, "Exception while sending message", e); 
     } 
    } else { 
     Toast.makeText(this, message, Toast.LENGTH_SHORT) 
       .show(); 
    } 
} 

वीडियो RemotePlaybackClient का उपयोग कर भेज रहा है .. ठीक है, क्या चित्रों के बारे में बताया गया है:

Thats कैसे मैं कस्टम चैनल का उपयोग पाठ संदेश भेज रही थी?

किसी भी मदद के लिए बहुत धन्यवाद।


संपादित करें:

मैं यह कैसे संभव है स्थानीय भंडारण से चित्रों को भेजने के लिए की विधि (on this blog) बाहर मिल गया है। और हाँ, यह वास्तव में काम नहीं कर रहा है।

public final void openPhotoOnChromecast(String title, String url, String ownerName, String description) { 
    try { 
     Log.d(TAG, "openPhotoOnChromecast: " + url); 
     JSONObject payload = new JSONObject(); 
     payload.put(KEY_COMMAND, "viewphoto"); 
     payload.put("fullsizeUrl", url); 
     payload.put("ownerName", ownerName); 
     payload.put("title", title); 
     payload.put("description", description); 

     sendMessage(payload); 
    } catch (JSONException e) { 
     Log.e(TAG, "Cannot parse or serialize data for openPhotoOnChromecast", e); 
    } catch (IOException e) { 
     Log.e(TAG, "Unable to send openPhotoOnChromecast message", e); 
    } catch (IllegalStateException e) { 
     Log.e(TAG, "Message Stream is not attached", e); 
    } 
} 

पीएस इस विधि इन पुस्तकालयों (Gradle से) से sendMessage(...) उपयोग करता है:

compile files('libs/commons-io-2.4.jar') 
compile files('libs/GoogleCastSdkAndroid.jar') 

उत्तर

3

यहाँ देख रहे हैं: Examples using CastCompanionLibrary to simply display an image वहाँ वास्तव में एक Chromecast से छवियों को भेजने के लिए तीन विकल्प हैं।

  1. आप छवि को बेस 64 स्ट्रिंग में एन्कोड कर सकते हैं और इसे डेटा चैनल रिसीवर पर भेज सकते हैं। यदि यह बहुत बड़ा है, तो आप इसे पर विभाजित कर सकते हैं और इसे कई संदेशों में भेज सकते हैं। यह कास्ट तकनीक का वास्तव में खराब उपयोग है और वास्तव में आपको यह नहीं करना चाहिए, लेकिन यह संभव है।
  2. आप बस Chromecast डिवाइस पर एक यूआरएल भेज सकते हैं और रिसीवर ऐप के अंदर अपने सेवर से पकड़ सकते हैं। यह Chromecast
  3. पर फ़ोटो भेजने के लिए अनुशंसिततरीका है यदि आप किसी सर्वर से अपनी छवियों को डाउनलोड नहीं कर रहे हैं तो आप अपने क्लाइंट एंड्रॉइड ऐप के अंदर चल रहे अपने सर्वर को सेट कर सकते हैं और यूआरएल को रिसीवर को भेज सकते हैं वहां से इसे पकड़ो। इस बल्कि भर में छवियों को भेजने के लिए जटिल है, लेकिन विकल्प की तुलना में कहीं अधिक मजबूत विकल्प है 1.

Chromecast का लक्ष्य है, गूगल के अनुसार, बादल, जिसके कारण वहाँ isn से सामग्री स्ट्रीम करने के लिए है स्थानीय छवियों को भेजने के लिए वास्तव में कोई मूल समर्थन नहीं है। डेवलपर्स को सर्वर से रिसीवर एप्लिकेशन पर छवियों को लोड करने के लिए प्रोत्साहित किया जाना चाहिए।

+0

स्पष्ट उत्तर के लिए धन्यवाद। मैं इस दृष्टिकोण को आजमाउंगा। – AnZ

+0

ठीक है, पहला दृष्टिकोण मेरे लिए काम नहीं करता था।मैं तीसरे की कोशिश करने जा रहा हूँ। जहां तक ​​मुझे समझ में आया कि यह सिद्धांत "डिवाइस अपलोड - क्रोमकास्ट डाउनलोड" के अनुसार काम करेगा। क्या ऐसी फ़ाइलों को ट्रांसफर करने के लिए इंटरनेट कनेक्शन की आवश्यकता है या यह डिवाइस के बीच केवल वाईफाई पर्याप्त होगा? और एक और सवाल - क्या मुझे इस तरह के दृष्टिकोण के लिए कस्टम रिसीवर चाहिए या डिफ़ॉल्ट व्यक्ति इससे निपटेंगे? कुछ उदाहरण महान बीटीडब्ल्यू होगा। – AnZ

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