I am doing a sender and receiver app for our site using Chrome API, currently when user wants to connect chromecast, its opening extension with device list, but in youtube its showing right there..
i am unable to get receiver list when i initiate chromecast sender app, all i am getting is device available or not, there are some old examples which uses cast.Api.addReceiverListener() to get the list of available devices.. but currently its not working and there seems to be no other option to do it..
i can see youtube and netflix are doing it though
thank you.
This is not officially supported in the current Chrome API. YouTube is likely using undocumented features or other DIAL functionality.
This might be of interest: https://github.com/jloutsenhizer/CR-Cast/wiki/Chromecast-Implementation-Documentation-WIP
Related
I've been searching on this for a while. I've read up on the Moz and Google documentation for the presentation API, however, I am unable to cast the website when prompted because it says the TV is "available for specific video sites."
I've searched some more and found that you must pay $5 (which I would be willing to do if I knew it would work) to register a receiver. After searching Stack Overflow for google cast, it seems that nearly everything has been disabled. I've tried putting in an empty video element but it still does not work.
I also see that a receiver is a different html page, but also that it would be uploaded as an Android app (?). I know that the presentation API is a generic presentation API, while Google Cast is specifically for Chromecast it seems. I can't seem to get anything working on any device or method to cast to the TV. I can cast YouTube but that's it. I'm wondering how I would go about getting my clock website castable to a TV. Thanks in advance.
Casting a tab help article doesn't seem to work for me either.
Here are relevant screenshots:
Mozilla Docs Presentation API
Chrome Sample Presentation API
Google Web Docs Presentation API
Google Cast Docs
It seems like you are trying to cast to a Samsung TV. Samsung TVs however don't really support support the real deal Chromecast protocol where you can mirror screens. I think what Chrome does here is when you are watching on supported site like Youtube or Twitch - it will remotely launch the right "App" on your Samsung TV and send over the link. It is however not possible to mirror ANY website.
Studying the possibility to achieve the following:
We have a CMS that from time to time posts to a web hook a media URL (video) (public internet hosted)
This web hook post we would like to post directly to a ChromeCast which is plugged in to a TV
Questions:
1. Can a web server like nodeJS be installed on a chrome cast?
2. Is it possible to use for example DynamicDNS to link the Chromecast to a domain name so the post from the web hook can be made?
ChromeCast has a sender API which allows you to "send" content to a specific Chromecast. Right now, the sender API works on Android, IOS and Chrome OS. You can read more about it here: https://developers.google.com/cast/docs/sender_apps.
And, here's how a receiver application that would receive your content on the ChromeCast would work: https://developers.google.com/cast/docs/receiver_apps or if you're content is a standard type, then you can use a prebuilt receiver application without building your own.
To answer your specific questions:
Can a web server like nodeJS be installed on a chrome cast?
No, not without enormous hacking and development yourself to basically take over the hardware somehow and get your own stuff to run on it.
Is it possible to use for example DynamicDNS to link the Chromecast to
a domain name so the post from the web hook can be made?
Not that I know of.
The chromecast has an android like google chrome operating system. It is possible to root it, but you will not be able to (to my knowledge) get a server on it. I would suggest taking a look at the Raspberry Pi. You should be able to run a slim server on it. After you get that set up it might be feasible to pass command line commands to chrome or another web browser to display the data you like. A browser is not necessary, but I'm not sure if you know of any other way to display the media.
A different approach would be to have a server anywhere (could be in your home) and have something like the raspberry pi (any computer for displaying the content) connect to a webpage hosted with that server. Using websockets something like socket.io, you could set it up so that the server could send messages (url of video) to the browser session you have open. The javascript of your webpage would then use that message to open that url.
I recently purchased a LG Music Flow H3 to test my Google Cast app with an 'audio-only' device. I've enabled audio-only device support within the Google Cast Dashboard and I've registered the device for development. My app works as expected when played to Google Chromecasts, however when attempting to load the receiver app on the LG device I get the following error:
{"reason":"NOT_FOUND","requestId":1,"type":"LAUNCH_ERROR"}
Thinking that perhaps 3rd-party devices can't be registered for development, I went ahead and published my app. Unfortunately this did not address the problem.
Upon further investigation, I'm noticing that other Google Cast apps (i.e. Songza, TuneIn, Pandora, etc. on both Android & iOS) aren't able to play to the LG Music Flow H3 either.
I discovered that the only way to get the H3 to play from Google Cast apps (both my app and others) is to first run the LG Music Flow multi-room audio app. Running the LG Music Flow app appears to effect the device's _googlecast._tcp zeroconf service discoverability. And sometimes the H3 shows up in zeroconf yet you still can't play to the speaker unless the LG Music Flow app is running.
This seams like very strange behavior. I called LG Tech Support, and they recommended I return the device and exchange it for a different one. I did this, and I still get the same result.
Is this how Google Cast on 3rd-Party devices is intended to work? Have I encountered a buggy 3rd-party implementation?
This is not the intended behavior for sure. You are supposed to be able to launch your 3rd party application on the speaker.
And it works for me.
The fact you are not able to use any other 3rd party apps (TuneIn, Pandora etc) indicate this is a some general problem and not specifically with your app.
Couple of steps I would try:
- Setup you H3 speaker on Wifi (vs Ethernet) and get the latest SW version using the Music Flow app.
Have you Factory reset the device? if you did, you will need to go through setup again. I have noticed Google Cast becomes enabled only after first complete setup.
Please try rebooting, and than try casting apps like TuneIn or Pandora and than see if this works (without using the MusicFlow app). I have noticed in the past that if some app is loaded and is behaving badly (for example uses tons of memory) it will put the speaker into a bad state that don't allow any app to work until reboot. So perhaps when you are casting your app, it gets into a bad state causing other apps to fail afterwards.
Have you made sure not to consume to much memory? avoid graphics or video?
I have put together a web app that creates a list of tracks that can be played in Spotify using a spotify:trackset link, as suggested in https://stackoverflow.com/a/12218041/51034.
When following the link on my iPhone, it switches to the Spotify app, but then I get an error claiming that it can't open this type of link on the device.
Is there any other way to link to a set of tracks on a mobile device?
The Spotify iOS client doesn't support tracksets at the moment — the only way to get a list of tracks into the client is via a playlist.
I plan to build a Chrome Extension that allows users to navigate web pages via voice commands.
To do so, I plan to put my speech recognition program on a backend server that connects with clients via Chrome extension.
Is it possible? I know how to develop an extension, but would appreciate if you could show a way of receiving voice input.
You don't need to modify Chrome.
Until the HTML5 tag gets landed in Chrome, your only option right now is to use NPAPI and include the plugin into your Extension. For more information visit this page:
http://code.google.com/chrome/extensions/npapi.html
You would have to implement a JavaScript audio input API using C++ inside Chromium, being aware that you have to transfer data through the sandbox, then once exported you can use the new API in your extension.
A lot of groundwork has already been done on specifying the audio API, read the details over at W3C:
http://chromium.googlecode.com/svn/trunk/samples/audio/specification/specification.html
Which links to details of a special build of Chrome with some already built samples:
http://chromium.googlecode.com/svn/trunk/samples/audio/index.html