dkrivoruchko / screenstream Goto Github PK
View Code? Open in Web Editor NEWScreenStream Android App
Home Page: https://screenstream.io
License: MIT License
ScreenStream Android App
Home Page: https://screenstream.io
License: MIT License
I tried to stream the screen over the internet. It's working with only the same network but when I tried with mobile data to stream in my desktop with WiFi network it's not streaming. It's giving a black screen only.
Feature request. Is it possible to split the screen into multiple streams totaling the entire screen? For example, I have a six inch eink reader and would like to stream my Android device to multiple 6 inch eink readers which are visually on top or side by side each other. Poor man's eink monitor.
Thanks for making this great app, and reading my crazy request.
i also wanted to fix or at least report 263b452 today... but nice that it is already fixed! ๐ - so straight to my second point...
as ScreenStream is not intended for high-quality-streaming, what do you think about lowering the default jpeg-quality, because 50% or also 40% still looks pretty ok to me. (80% is used in most digi-cams for pictures!)
in the same course i would raise the default picture rate... perhaps round about double it to something like 15-20.
so the user will get a slightly worse picture quality but a far less laggier experience... and over all this will result IMHO in a much better (first) impression for users who don't fiddle around with the settings (which is by far the vast majority).
Hi. First of all: thanks for your very good work. I would like to know if there is a way to stream the android screen via USB cable? So if you don't have any Wifi or 4G available, you can just link the smartphone and your pc via an USB cable and then be able to stream your android screen?
This would be really awesome.
Thanks
It would be nice to define the quality instead of it being dynamic, sometimes it uses a lot of bandwith but sometimes it is really low like going from 8mbs to 0.6mbs?
Would it be possible to add an option for https/ssl and password protection? This would leed to more security, for example on public WLAN. Because it would has to use self signed zertificates, the hash sum, fingerprint or something like that could be displayed in the app to compare it with the information from webbrowsers like firefox to prevent man-in-the-midfle attacks.
Hi, Please Add Quick Settings Tiles in Android Nougat (like OpenVPN)
Use a slider instead of number input to resize image and JPEG quality
In the resize image dialog it's not possible to inset numbers with more than 2 digits althougt it promise values between 10 and 150 are possible. I'm using the version from FDroid.
V1.8.8 from f-droid crashes immediately on startup on my Samsung S7 (SM-G930F). Earlier version did the same (unknown version ).
Could try to get some logs from adb if necessary.
Once the app is running, is there a way to start/stop the stream from the browser, instead of the device ?
I installed the App, works fine on chrome but not on safari, on safari it just never loads.
When I go to build this in android studio, I get this error. Strange thing is, I've built previous versions just fine. And my understanding is that this app does not use google services plugin. Am I wrong? Do I need to set up my own configuration file from developers.google.com/mobile/add ?
Is there an API to get the video frames into another app?
or maybe make this a library that other apps can include.
this would be great
With Samsung "Smart View" I can mirror my phone screen to TV. But if I start "Smart View" while "Screen Stream over HTTP" is running, it disconnect. is it possible to use both together ??
Thanks
When I open the URL on firefox I get SSL_ERROR_RX_RECORS_TOO_LONG, how I can fix this? Thanks
It would be nice if it were universal and could be compiled for Android and iOS.
It would be nice if one could run one/both cameras alongside/instead of the screen capture.
Hi,
very grate app, i use that to teach/show things on android (there are many neet apps for school environments ๐) from my physical device to the big wall. But is it possible to add an H264 mode with additional sound support so it can be also used for high framerates and does not require that much bandwith, our school wifi is much times quite over loaded when 30 pupils are online?
Grate
Why no more 'fabricfree' apks?
The "Resize image" and "JPEG compression quality" settings allow entering only 2 digits instead of 3. Example: JPEG compression quality to 100, only 10 can be entered. Same for resize image.
This app is great the only thing its missing IMO is the ability to remote control the phone that is being streamed.
so i would like to suggest that improvement.
thank you!
-DM
Is it possible to add support for RTSP protocol?
Right now it's possible to access stream file (stream.mjpeg) from OBS on the same network and stream (via rtsp) from there.
Thanks for this amazing app.
The app runs perfectly however if I stop the stream from the browser I am unable to start it again. I must open the app on my device and start manually. Could this be a permissions issue?
Hey, first of all, I love this app, I've wanted something like this for years!
But the resize image-setting says I can set a percent value of 10-150% (if I understand correctly) but I can only write two digits in the field, so I can't even get 100% of my phone's resolution only 99%.
I'm using the 2.1.4 version on Lineage 14.1 (Android 7.1.2)
If you need any further info I'd be happy to provide. Thanks again!
I am using this app to display Google books on my eink reader, any chance of page up and down buttons on the webpage that invoke keyboard strokes on host device would be appreciated. This would allow me to navigate the book without holding the phone. YouTube is jittery but works enough for me. Great work.
Hi, was the size increment of this new version caused by this Ktor thing? If so, what improvements does it bring to the app?
My phone always lack free space, therefore I don't like when an app grows a lot in a single jump.
Fabricfree numbers:
apk | 2.60 ยป 3.49 MB |
dalvik-cache | 7.16 ยป 13.73 MB |
I'd be interested in using this on a Nvidia Shield TV. Possible?
Thanks for this useful application. I've been using for a long time with pleasure.
A feature that may be easy to implement, imho:
Is it possible to cast the video without borders around the video? I mean the background border, which we can choose its color. It would be good if we can remove it to use maximum screen space in browser window.
Thanks again for your efforts!
Inside the of the index page you link in the header sectionvto the file "/baseFavicon.ico" which dose not exist, but "/favicon.ico" is working, so just changing that line will fix that problem i guess
Wonderful application
Would it be possible to configure the streaming service to run automatically when you start the app? For example for an unattended terminal that every time you restart the app not only runs but the server also starts. When I restart the phone, I have to start the stream manually. Maybe add support so Tasker can start the stream equally ... are ideas for improvement
See the below .gif file. Basically it seems that some apps will show a black screen instead of allowing the screen stream app to see the contents. Possibly a security thing? I want to demonstrate FreeOTP but it will not screen cast that app from the look of things, even though the camera / QR code scan function will be broadcasted. Is there a way to override any security option? Other apps don't have the same problem and the app renders correctly on the smartphone itself.
E/StrictMode: null
java.lang.Throwable: Untagged socket detected; use TrafficStats.setThreadSocketTag() to track all network usage
at android.os.StrictMode.onUntaggedSocket(StrictMode.java:2010)
at com.android.server.NetworkManagementSocketTagger.tag(NetworkManagementSocketTagger.java:78)
at sun.nio.ch.Net.socket0(Native Method)
at sun.nio.ch.Net.serverSocket(Net.java:424)
at sun.nio.ch.ServerSocketChannelImpl.(ServerSocketChannelImpl.java:88)
at sun.nio.ch.SelectorProviderImpl.openServerSocketChannel(SelectorProviderImpl.java:56)
at io.netty.channel.socket.nio.NioServerSocketChannel.newSocket(NioServerSocketChannel.java:58)
at io.netty.channel.socket.nio.NioServerSocketChannel.(NioServerSocketChannel.java:71)
at java.lang.Class.newInstance(Native Method)
at io.netty.channel.ReflectiveChannelFactory.newChannel(ReflectiveChannelFactory.java:38)
at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:319)
at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java:281)
at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:277)
at io.reactivex.netty.protocol.tcp.server.TcpServerImpl.start(TcpServerImpl.java:198)
at io.reactivex.netty.protocol.http.server.HttpServerImpl.start(HttpServerImpl.java:181)
at info.dvkr.screenstream.domain.httpserver.HttpServerImpl.(HttpServerImpl.kt:162)
at info.dvkr.screenstream.data.presenter.foreground.FgPresenter$1.doResume(FgPresenter.kt:61)
at kotlin.coroutines.experimental.jvm.internal.CoroutineImpl.resume(CoroutineImpl.kt:54)
at kotlinx.coroutines.experimental.DispatchedTask$DefaultImpls.run(Dispatched.kt:161)
at kotlinx.coroutines.experimental.AbstractContinuation.run(AbstractContinuation.kt:31)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
since 3.x somehow the app starts itself (thankfully not the stream) after booting the device. - initially i thought it was a bug, because i had "Start on boot" unchecked.
this is somehow annoying if you just use the app occasionally and is IMHO still a bug. there should rather be a checkbox like "Start stream on boot" for "Start app on boot". is this possible to add?
btw: changing the items "Start on boot" and "Stop on sleep" to "Start stream on boot" and "Stop stream on sleep" would clarify things anyway.
There are actually "Open" and "Copy" buttons, but please add also "Share" btn (ACTION_SEND intent), it is useful for some cases and it is a simple thing
Hi,
Is there some plan to make it work over internet? I means share between viewer on differents networks.
Regards
Keeping in mind that app opens on using notification button due to Android limitation, please add a small semi-transparent on-screen floating button to play/pause streaming.
From a teacher's perspective, I can't let my students attention to go anywhere else while I Google images, meanwhile my phone's screen being projected.
That will allow the user to pause, then search images another tab, and start streaming again when I find the correct image to be presented & teach any of their questions.
And yes, please add a "Donate" link in about section. This application is really helping me a lot.
Opened the project in Android Studio 3.2.1
Initial gradle sync failed
org.gradle.internal.exceptions.LocationAwareException: Failed to notify build listener.
at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:83)
at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:64)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:57)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify build listener.
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:86)
at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy12.buildFinished(Unknown Source)
at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:179)
... 71 more
Caused by: java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier;
at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:205)
at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:192)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaDataFromCache(CachingModuleComponentRepository.java:212)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:185)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$resolveComponentMetaData$3(ErrorHandlingModuleComponentRepository.java:159)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$tryResolveAndMaybeBlacklist$15(ErrorHandlingModuleComponentRepository.java:228)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:242)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:227)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.performOperationWithRetries(ErrorHandlingModuleComponentRepository.java:220)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData(ErrorHandlingModuleComponentRepository.java:158)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.process(ComponentMetaDataResolveState.java:69)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.resolve(ComponentMetaDataResolveState.java:48)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:138)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:119)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:92)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve(RepositoryChainComponentMetaDataResolver.java:63)
at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.buildComponentResult(DefaultArtifactResolutionQuery.java:166)
at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.createResult(DefaultArtifactResolutionQuery.java:144)
at org.gradle.api.internal.artifacts.query.DefaultArtifactResolutionQuery.execute(DefaultArtifactResolutionQuery.java:135)
at org.jetbrains.plugins.gradle.tooling.util.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:207)
at org.jetbrains.plugins.gradle.tooling.util.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:125)
at org.jetbrains.plugins.gradle.tooling.builder.ModelBuildScriptClasspathBuilderImpl.buildAll(ModelBuildScriptClasspathBuilderImpl.java:89)
at org.jetbrains.plugins.gradle.tooling.internal.ExtraModelBuilder.buildAll(ExtraModelBuilder.java:67)
at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1$1.create(DefaultToolingModelBuilderRegistry.java:102)
at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:132)
at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1.call(DefaultToolingModelBuilderRegistry.java:98)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder.buildAll(DefaultToolingModelBuilderRegistry.java:95)
at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:79)
at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter$2.getModel(InternalBuildActionAdapter.java:77)
at org.gradle.tooling.internal.consumer.connection.BuildControllerAdapter.getModel(BuildControllerAdapter.java:62)
at org.gradle.tooling.internal.consumer.connection.AbstractBuildController.findModel(AbstractBuildController.java:57)
at org.gradle.tooling.internal.consumer.connection.AbstractBuildController.findModel(AbstractBuildController.java:44)
at org.jetbrains.plugins.gradle.model.ProjectImportAction.addExtraProject(ProjectImportAction.java:134)
at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:76)
at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:40)
at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:80)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner$ResultBuildingListener.buildResult(ClientProvidedBuildActionRunner.java:114)
at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner$ResultBuildingListener.buildFinished(ClientProvidedBuildActionRunner.java:106)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:376)
at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:358)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:346)
at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:333)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
... 78 more
I really like ScreenStream, it's perfect for presentations and stuff without Chromecast. Only thing I noticed is that I can only enter two-digit numbers in the image scaling settings. It should be 10-150 instead.
I started the app on 3G/LTE and when i put IPV6 address on browser I am not able to access ? Could you give details
Hi, i would like to know, which files to translate into new language and which are the source files?
And it would be nice to add this info to readme.md IMHO.
Thank you. :)
I have tried importing and run your project and got this issue.
Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver
got this error. https://developer.android.com/studio/build/dependencies#duplicate_classes.
I have tried excluding this ResultReceiver module and no luck same error. Below is the part i tried.
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion"){
exclude group: 'android.support.v4.os', module: 'ResultReceiver'
}
I have also searched the stackoverflow and found that mixing of old and androidx causing this problem.
Any help
Hi,
Is there a way to obtain a jpg still image?
Do you plan to add this functionality on next future?
I want to add screen streaming to my HomeAssistant and I need also a jpg source URL
Cheers
hey can you make a java version for this project?
Very good app. Would it be possible to implement a way to transmit mouse clicks from webbrowser to the smartphone?
Hi,
thanks for the great idea. might be my solution to remote help my mum & her phone :D
Still, would it be possible to establish HTTPS via internet, please?
Cheers
For some reason I cannot close an open streaming channel or port on phone using pull down motion on home screen. I have to open up the app again to do so.
However, if I had closed the app, it does not give me an option to stop streaming.
Instead it gives me an alert message that a port is already open.
This alert message is on the top half of phone screen which then prevents me from accessing the app settings icon. The alert message is in a loop.
So the only option now to close the streaming port is to reboot my phone.
I am installing v2.15 from F-Droid on an Moto G5 Plus running Android 8.10. When installing the application, the permission screen says "This application does not require any special permissions". When running the app after installation, pressing "Start Stream" shows a dialog box reading "Screen Stream will start capturing everything that's displayed on your screen." I am unable to proceed by tapping the "start now" button. If I tap "cancel", a dialog reading "Application requires Screen Cast permission to capture screen."
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.