zapp icon indicating copy to clipboard operation
zapp copied to clipboard

Chromecast Support

Open bjoernkoenig opened this issue 7 years ago • 22 comments

Please add Chromecast Support to Zapp App

bjoernkoenig avatar Dec 27 '17 22:12 bjoernkoenig

I don't own a chromecast, but I would be happy for any contributions.

cemrich avatar Dec 28 '17 17:12 cemrich

FYI: VLC 3.0 implemented Chromecast support without relying on the proprietary SDK, but just reimplementing it (and also supporting more formats, yay!).

rugk avatar Feb 09 '18 17:02 rugk

I am very sorry, but this feature is out of scope right now :(

cemrich avatar May 20 '18 15:05 cemrich

I would be glad to contribute a chromecast support to this project. Is it possible to reopen this issue?

userdimi avatar Jul 24 '19 20:07 userdimi

I would be glad to contribute a chromecast support to this project. Is it possible to reopen this issue?

Feel free to implement it.

alex1702 avatar Jul 25 '19 05:07 alex1702

@userdimi: There are some hurdles regarding chromecast support:

  1. The Google SDK is closed source and cannot be released on F-Droid (which is the only store accepting Zapp right now).
  2. If there was any open source alternative it has to be provided by a repository trusted by F-Droid. I had an issue with UPNP support and F-Droid, because I had to use the CLING library from an external maven repository and the F-Droid build server refused to build.
  3. I have no access to a Chromecast device to test the implementation right now. So I might not be able to hold up support for that feature in the future.

Do you have ideas on how to implement this feature UI wise? You may want to take a look at my UPNP DLNA commit from two years ago: https://github.com/mediathekview/zapp/commit/c0ad444810fdadae141bf304f5fe294d8fb9f39f

cemrich avatar Jul 25 '19 19:07 cemrich

As for the technical reasons, you could also just use two build flavors, so only the Google Play version can include this feature then. Or some thing as VLC – AFAIK theyx have their own implementation.

rugk avatar Jul 26 '19 13:07 rugk

@rugk There is no Google Play or Amazon Store version and probably never will be (see #39). Also, F-Droids automated build system was not able to handle build flavors and had to be triggered manually. I don't know if that has changed the last few months.

cemrich avatar Jul 27 '19 09:07 cemrich

Ah okay, so then we really need a FLOSS-only solution. So possibly VLC's implementation might be the best.

rugk avatar Jul 27 '19 20:07 rugk

@cemrich I didn't know that F-Droid is rejected closed sourced SDK's like Google Cast SDK but yes, it makes sense for an open source store. I agree with @rugk and I think also that the best solution is, to make another one flavour for the chromecast support build. So you can deploy the app farther in F-Droid Store without chromecast feature. User who like to try out the chromecast feature can download the apk build from the chromecast flavor from a server and install it on the devices.

The other question is, do you have a web server, where I can deploy the receiver application, so that the devices can connect with them? For beginning I will build an example receiver application and test it local with my chromecast device. But for the production we need a web server which is running 24/7

I have some Ideas about the UI for zapp application. I will make some drafts and load them here up.

userdimi avatar Jul 30 '19 09:07 userdimi

The other question is, do you have a web server, where I can deploy the receiver application, so that the devices can connect with them?

Wait, Chromecast integration requires a server component? A receiving server? Rly??

rugk avatar Jul 30 '19 09:07 rugk

If I have understand it correct, yes. Please check this out: https://developers.google.com/cast/docs/caf_receiver/

userdimi avatar Jul 30 '19 10:07 userdimi

You don't need an own server. The TV running Chromecast acts as the server for the Caster (in this case Zapp). I had support for Chromecast in MVW and didn't require any server component.

You would have to implement an server if you would like to receive content from other apps.

bagbag avatar Jul 30 '19 10:07 bagbag

@userdimi I think you only need a server component if you want to create a Zapp client app which runs directly on the chromecast device (maybe to share and browse the library). For casting streaming and video addresses you need to transform Zapp to a sender app: https://developers.google.com/cast/docs/android_sender/

I had an idea on how to gracefully handle the floss/non-floss issue: I think it might be possible to deliver chromecast support as a plugin. This can be a separate (non-floss) APK without launcher which can be downloaded on Github. Here are some slides on how to do this: https://speakerdeck.com/appfoundrybe/cross-app-communication-and-plugin-architecture-in-android

cemrich avatar Jul 30 '19 19:07 cemrich

The VLC guys claim that their libvlc is capable of streaming to Chromecast. It is licensed under LGPL 2.0 so it should be possible to include it into a MIT licensed app, right? I'll have a look as soon as I find the time...

upost avatar Sep 09 '20 09:09 upost

Please look into it. The official ZDF app lags hard. Thank you!

ThomasHeinrichSchmidt avatar Nov 13 '22 21:11 ThomasHeinrichSchmidt