पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv2.1.0

cast

Chromecast उपकरणों के साथ पता लगाने और कनेक्ट करने के लिए Dart पैकेज

30-दिन डाउनलोड
16.5 हज़ार
लाइक
94
Pub अंक
80

पैकेज इंस्टॉल करें

flutter pub add cast

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

कास्ट पैकेज एक डार्ट लाइब्रेरी है जिसका उपयोग फ्लटर एप्लिकेशन में क्रोमकास्ट डिवाइस की खोज और कनेक्शन के लिए किया जाता है। यह डेवलपर्स को अपने एप्लिकेशन से ऑडियो, वीडियो और अन्य कंटेंट को समर्थित क्रोमकास्ट-समर्थ डिस्प्ले पर स्ट्रीम करने की अनुमति देता है। पैकेज बिना नीचे के प्रोटोकॉल के गहन ज्ञान के बिना आसान एपीआई के साथ कास्टिंग कार्यक्षमता प्रदान करता है। यह eivo.co द्वारा बनाए जाता है और कम्युनिटी के योगदान के लिए GitHub पर उपलब्ध है।

उपयोग

  • Chromecast उपकरणों पर स्ट्रीमिंग मीडिया
  • टीवी या होम एंटरटेनमेंट ऐप्स बनाना
  • दूरस्थ प्रस्तुति नियंत्रण सक्षम करें
  • स्मार्ट होम इकोसिस्टम के साथ एकीकरण
  • क्रॉस-डिवाइस मीडिया अनुभव बनाना

मुख्य विशेषताएँ

  • स्वचालित Chromecast डिवाइस खोज
  • ध्वनि और वीडियो कास्टिंग का समर्थन
  • सरल, स्पष्ट एपीआई
  • प्लेटफॉर्म-विशिष्ट कार्यान्वयन के साथ एक अंतर-प्लेटफॉर्म सुसंगतता
  • ओपन-सोर्स और कम्युनिटी द्वारा बनाए गए

इनके लिए उपयुक्त

  • मीडिया ऐप्स बनाने वाले डेवलपर्स
  • स्मार्ट टीवी या स्ट्रीमिंग डिवाइस के लक्षित ऐप्स
  • डिवाइस-टू-डिवाइस कास्टिंग आवश्यक परियोजनाएँ
  • आईओटी या होम ऑटोमेशन इंटीग्रेशन पर काम कर रही टीमें
  • बहु-स्क्रीन अनुभव के लिए डिज़ाइन किए गए फ्लटर ऐप्स

विचार योग्य बातें

  • पूर्ण कार्यक्षमता के लिए Android और iOS प्लेटफॉर्म सेटअप की आवश्यकता होती है
  • केवल Chromecast-संगत उपकरणों तक सीमित
  • जटिल मीडिया स्ट्रीम के लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है
  • बाहरी नेटवर्क कनेक्टिविटी पर निर्भर करता है
  • गैर-मीडिया कास्टिंग उपयोग मामलों के लिए अनुपयुक्त

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Pub Likes Pub Popularity Pub Points

cast

Dart package to discover and connect with Chromecast devices

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  cast: ^2.1.0
iOS

Required iOS 13 minimum. Since iOS 14 a few more steps are required https://developers.google.com/cast/docs/ios_sender/ios_permissions_changes

In ios/Runner/Info.plist add:

<key>NSBonjourServices</key>
<array>
  <string>_googlecast._tcp</string>
  <string>_YOUR_APP_ID._googlecast._tcp</string>
</array>

<key>NSLocalNetworkUsageDescription</key>
<string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
network.</string>

Usage

List devices:

Widget build(BuildContext context) {
  return FutureBuilder<List<CastDevice>>(
    future: CastDiscoveryService().search(),
    builder: (context, snapshot) {
      if (snapshot.hasError) {
        return Center(
          child: Text(
            'Error: ${snapshot.error.toString()}',
          ),
        );
      } else if (!snapshot.hasData) {
        return Center(
          child: CircularProgressIndicator(),
        );
      }

      if (snapshot.data!.isEmpty) {
        return Column(
          children: [
            Center(
              child: Text(
                'No Chromecast founded',
              ),
            ),
          ],
        );
      }

      return Column(
        children: snapshot.data!.map((device) {
          return ListTile(
            title: Text(device.name),
            onTap: () {
              _connectToYourApp(context, device);
            },
          );
        }).toList(),
      );
    },
  );
}

Connect to device:

Future<void> _connect(BuildContext context, CastDevice object) async {
  final session = await CastSessionManager().startSession(object);

  session.stateStream.listen((state) {
    if (state == CastSessionState.connected) {
      _sendMessage(session);
    }
  });

  session.messageStream.listen((message) {
    print('receive message: $message');
  });

  session.sendMessage(CastSession.kNamespaceReceiver, {
    'type': 'LAUNCH',
    'appId': 'YouTube', // set the appId of your app here
  });
}

CastSessionManager is used to keep track of all sessions.

Send message:

void _sendMessage(CastSession session) {
  session.sendMessage('urn:x-cast:namespace-of-the-app', {
    'type': 'sample',
  });
}

Except for the launch message, you should wait until the session have a connected state before sending message.

Note

Some informations about the protocol used https://docs.rs/crate/gcast/0.1.5/source/PROTOCOL.md

$ pub global activate protoc_plugin
$ export PATH="$PATH":"$HOME/.pub-cache/bin"
$ protoc -I=./lib/cast_channel --dart_out=./lib/cast_channel ./lib/cast_channel/cast_channel.proto --plugin "pub run protoc_plugin"

Author

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 2 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट