ConnectSDK / Connect-SDK-Android

Android source project for Connect SDK
Apache License 2.0
301 stars 130 forks source link

Fire TV is able to detect but I am not able to cast anything on Fire Stick #395

Open krishna415741 opened 1 year ago

krishna415741 commented 1 year ago

No Whisperplay XML, will not be hosting any services

2022-11-17 15:02:14.427 13605-13820/com.castapp D/HELLO WORLD888 :: [MediaPlayer.MediaInfo.Get, MediaPlayer.Display.Image, MediaPlayer.Play.Audio, MediaPlayer.Play.Video, MediaPlayer.Close, MediaPlayer.MetaData.MimeType, MediaPlayer.MetaData.Thumbnail, MediaPlayer.MetaData.Title, MediaPlayer.Subtitle.WebVTT, MediaControl.Play, MediaControl.Pause, MediaControl.Stop, MediaControl.Seek, MediaControl.Duration, MediaControl.Position, MediaControl.PlayState, MediaControl.PlayState.Subscribe] 2022-11-17 15:02:14.428 13605-13820/com.castapp D/HELLO WORLD888 :: naman's FireTVStick 2022-11-17 15:02:14.429 13605-16358/com.castapp D/WhisperLink: Connection - Connection Attempt #:0: Excluded transports :[] 2022-11-17 15:02:14.429 13605-16358/com.castapp D/WhisperLink: Connection - doConnectOnce, device=[device=null], service=Description(sid:amzn.reg, friendlyName:null, accessLevel:3, security:0, flags:0, version:1), protocol=null, channel=null; excluded=[] 2022-11-17 15:02:14.429 13605-16358/com.castapp D/WhisperLink: TTransportManager - Get transport for local device amzn.reg 2022-11-17 15:02:14.429 13605-16358/com.castapp D/WhisperLink: Connection - Returning a cache transport for amzn.reg 2022-11-17 15:02:14.429 13605-16358/com.castapp D/WhisperLink: Connection - calling Connection.close for device() [device=null] 2022-11-17 15:02:14.429 13605-16358/com.castapp D/PlayerDeviceImpl: callService.run() - connection=com.amazon.whisperlink.util.Connection@7f68dfb 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: Connection - Connection Attempt #:0: Excluded transports :[] 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: Connection - doConnectOnce, device=[device: local=false, uuid=D025D3547580E1F1A3149BDAA649352D, routes={inet=Route(ipv4:192.168.29.193, unsecurePort:36474, securePort:38380)}], service=Description(sid:amzn.thin.pl, friendlyName:null, accessLevel:0, security:0, flags:0, version:0), protocol=null, channel=null; excluded=[] 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: Connection - Connection Attempt #:0: Excluded transports :[] 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: Connection - doConnectOnce, device=[device=null], service=Description(sid:amzn.reg, friendlyName:null, accessLevel:3, security:0, flags:0, version:1), protocol=null, channel=null; excluded=[] 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: TTransportManager - Get transport for local device amzn.reg 2022-11-17 15:02:14.430 13605-16358/com.castapp D/WhisperLink: Connection - Returning a cache transport for amzn.reg 2022-11-17 15:02:14.431 13605-16358/com.castapp D/WhisperLink: Connection - calling Connection.close for device() [device=null] 2022-11-17 15:02:14.431 13605-16358/com.castapp D/WhisperLink: TTransportManager - Get transport for remote device amzn.thin.pl; channel:null 2022-11-17 15:02:14.431 13605-16358/com.castapp D/WhisperLink: TTransportManager - Getting external transport for channel:inet: Channel connected? :false: ext channel :com.amazon.whisperlink.port.android.transport.TExternalSocketFactory@a3de1f6 2022-11-17 15:02:14.431 13605-16358/com.castapp E/WhisperLink: TTransportManager - Unable to get external transport, channel factory is null, channel=null 2022-11-17 15:02:14.431 13605-16358/com.castapp D/WhisperLink: Connection - Exception in connection:null com.amazon.whisperlink.exception.WPTException at com.amazon.whisperlink.util.Connection.doConnectOnce(Connection.java:679) at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:587) at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:537) at com.amazon.whisperlink.util.Connection.connect(Connection.java:380) at com.amazon.whisperplay.fling.media.controller.impl.PlayerDeviceImpl$23.call(PlayerDeviceImpl.java:457) at java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) at java.lang.Thread.run(Thread.java:1012) 2022-11-17 15:02:14.431 13605-16358/com.castapp W/WhisperLink: Connection - No route to service :Description(sid:amzn.thin.pl, friendlyName:null, accessLevel:0, security:0, flags:0, version:0): on device :[device: local=false, uuid=D025D3547580E1F1A3149BDAA649352D] 2022-11-17 15:02:14.432 13605-16358/com.castapp W/WhisperLink: Connection - Exception in connection. Exception code :1 :class com.amazon.whisperlink.exception.WPTException :com.amazon.whisperlink.exception.WPTException 2022-11-17 15:02:14.432 13605-16358/com.castapp D/WhisperLink: Connection - calling Connection.close for device() [device: local=false, uuid=D025D3547580E1F1A3149BDAA649352D, routes={inet=Route(ipv4:192.168.29.193, unsecurePort:36474, securePort:38380)}] 2022-11-17 15:02:14.432 13605-16358/com.castapp E/PlayerDeviceImpl: Exception: com.amazon.whisperlink.exception.WPTException: com.amazon.whisperlink.exception.WPTException at com.amazon.whisperlink.util.Connection.throwIfNetworkError(Connection.java:804) at com.amazon.whisperlink.util.Connection.doConnectOnce(Connection.java:725) at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:587) at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:537) at com.amazon.whisperlink.util.Connection.connect(Connection.java:380) at com.amazon.whisperplay.fling.media.controller.impl.PlayerDeviceImpl$23.call(PlayerDeviceImpl.java:457) at java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) at java.lang.Thread.run(Thread.java:1012) Caused by: com.amazon.whisperlink.exception.WPTException at com.amazon.whisperlink.util.Connection.doConnectOnce(Connection.java:679) at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:587)  at com.amazon.whisperlink.util.Connection.doConnect(Connection.java:537)  at com.amazon.whisperlink.util.Connection.connect(Connection.java:380)  at com.amazon.whisperplay.fling.media.controller.impl.PlayerDeviceImpl$23.call(PlayerDeviceImpl.java:457)  at java.util.concurrent.FutureTask.run(FutureTask.java:264)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)  at java.lang.Thread.run(Thread.java:1012)  2022-11-17 15:02:14.432 13605-16358/com.castapp D/WhisperLink: Connection - calling Connection.close for device() [device: local=false, uuid=D025D3547580E1F1A3149BDAA649352D, routes={inet=Route(ipv4:192.168.29.193, unsecurePort:36474, securePort:38380)}] 2022-11-17 15:02:14.432 13605-13605/com.castapp E/Error: Error playing video com.connectsdk.service.command.FireTVServiceError: Error setting media source at com.connectsdk.service.FireTVService$6.futureIsNow(FireTVService.java:613) at com.amazon.whisperplay.fling.media.controller.impl.PlayerDeviceImpl$AsyncFutureTask.done(PlayerDeviceImpl.java:594) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:381) at java.util.concurrent.FutureTask.setException(FutureTask.java:250) at java.util.concurrent.FutureTask.run(FutureTask.java:269) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637) at java.lang.Thread.run(Thread.java:1012) 2022-11-17 15:02:14.433 13605-13605/com.castapp D/CHECK DETAILS :: {"id":"7e21ebe9-dd62-4b9c-a56b-13c4866f2ad9","lastKnownIPAddress":"D025D3547580E1F1A3149BDAA649352D","friendlyName":"naman's FireTVStick","lastConnected":1668677527,"lastDetection":1668677526,"services":{"D025D3547580E1F1A3149BDAA649352D":{"class":"FireTVService","description":{"ipAddress":"D025D3547580E1F1A3149BDAA649352D","uuid":"D025D3547580E1F1A3149BDAA649352D","friendlyName":"naman's FireTVStick","port":0,"serviceId":"FireTV"},"config":{"class":"ServiceConfig","lastDetection":1668666522,"UUID":"D025D3547580E1F1A3149BDAA649352D"}}}} 2022-11-17 15:02:16.020 13605-16282/com.castapp I/JmDNSImpl: updateRecord() name=amzn.dmgr:9E510420123173774DE800C681732F01:hRvnSWvBgf:582676 typeSubType=_amzn-wplay._tcp.local. op=Remove #listeners=2 2022-11-17 15:02:16.021 13605-16312/com.castapp D/WhisperLink: JmdnsServiceListener - Service Removed: Service Name: amzn.dmgr:9E510420123173774DE800C681732F01:hRvnSWvBgf:582676 Service Type: _amzn-wplay._tcp.local. 2022-11-17 15:02:16.021 13605-16312/com.castapp D/WhisperLink: JmdnsServiceManager - Not propagating loss of 9E510420123173774DE800C681732F01

theduc0x commented 11 months ago

@krishna415741 Have you found a solution yet? I also have the same error

VishV-Android commented 7 months ago

Getting same error.

VishV-Android commented 4 months ago

@krishna415741 @theduc0x I found a solution for cast anything to the FireStick.

casolorz commented 4 months ago

@VishV-Android mind sharing what the solution is?

VishV-Android commented 4 months ago

@casolorz If you have included Connect-SDK module in your project then you'll be able to manage this:

Firstly, you need to download latest AmazonFling SDK from here, https://developer.amazon.com/docs/apps-and-games/sdk-downloads.html#fling

Then find AmazonFling.jar in libs folder in Connect-SDK module. For .jar file location, see this reference https://developer.amazon.com/docs/fling/setting-up-your-amazon-fling-development-environment-for-android.html

Now, just overwrite your newer AmazonFling.jar with older one.

casolorz commented 4 months ago

Thanks.

kun510 commented 3 months ago

I have one device that seems to always have issues finding the FireTV. It does find the DIAL service but not the Fling.

VishV-Android commented 3 months ago

@kun510 Could you please elaborate that what kind of issue you are facing and what you want to do?

kun510 commented 3 months ago

@VishV-Android

When I connect fire tv using DIAL, the device list shows up and I see it. but when I want to connect using Fling, it doesn't display my fireTV device anymore, but when I put log in the start function of FireTVDiscoveryProvider, it still works but it doesn't display on the device.

fun getDiscoveryManager() { val mDiscoveryManager = DiscoveryManager.getInstance() try { //FireTVService mDiscoveryManager.registerDeviceService( FireTVService::class.java, FireTVDiscoveryProvider::class.java) mDiscoveryManager.pairingLevel = DiscoveryManager.PairingLevel.ON mDiscoveryManager.setServiceIntegration(true) DiscoveryManager.getInstance().start() } catch (e: ClassNotFoundException) { e.printStackTrace() } }

VishV-Android commented 3 months ago

@kun510 do you mean your FireTv is discover by DIALservice, not by FireTvService? And as you mention that you are not able to see in device list. Which device list are you talking about, Is it connectSDK devicePicker dialog list?

And remember, Amazon Fling don't provide device IP Address.

Kindly mention that what you want to do so I can help in that way.

ezcode147 commented 1 month ago

when i updated the latest amazon fling i was able to stream pictures and videos to fire tv. But it still gives me the error SimplePlayerException(error:com.amazon.whisperlink.service.fling.media.SimplePlayerError@c6763c0, message:Requires ACCESS_HDMI_SERVICE_ADVANCED permission) and it just goes to error

kun510 commented 1 month ago

@ezcode147 It is only used in Android 12, Not supported yet android 14

ezcode147 commented 1 month ago

@kun510

@ezcode147 It is only used in Android 12, Not supported yet android 14

I am using android 11 and targetSdk 33 phone and still getting the above error. When debugging in FireTvService I get the error java.util.concurrent.ExecutionException: java.io.IOException: Cannot set Url on media device in handleAsyncFutureWithConversion