Coder Social home page Coder Social logo

screenstream's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

screenstream's Issues

Not working with different network

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.

Screen split into multiple streams totaling entire screen

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.

better default values = better (first) impression of the app

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).

USB cable streaming

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

[Feature Request] Set bitrate

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?

Encryption and password protection

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.

for use in other apps

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

Using Smart View with this app

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

Secure conection failed

When I open the URL on firefox I get SSL_ERROR_RX_RECORS_TOO_LONG, how I can fix this? Thanks

[FR] Camera support

It would be nice if one could run one/both cameras alongside/instead of the screen capture.

H264/AAC mode

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

Resize and quality settings

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.

Please Add Remote Control.

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

[Feature request] Support VNC protocol

Idea: add support for the VNC protocol. There are two usage scenarios:

  1. Act as a VNC server and provide the stream to incoming client connections (VNC viewers).
  2. Connect to a VNC viewer running in listen mode and stream to it.

Scenario 2 would be very helpful for our PalMA software.

[Feature request] RTSP Protocol

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.

Start/Stop stream web page buttons not working

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?

โ€žResize imageโ€œ is not working as intended for me (or described wrong?)

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%.

screenshot_20180126-092354

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!

HTML buttons to host keyboard buttons feature?

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.

v3.4.4-5 size

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

[Feature request] borderless casting

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!

Dead link in index.html (or index page)

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

Autostart stream and posibble Tasker support

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

Feature or Bug?

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.

2018-10-15_14-53-16

Showing strictmode policy error

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)

app starts automatically after boot (since version 3.x)

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.

Share button for address

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

Share over internet

Hi,
Is there some plan to make it work over internet? I means share between viewer on differents networks.

Regards

[Feature Request] Floating button to toggle "play/pause"?

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.

Gradle project sync failed

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


Scaling max 99%

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.

How to add new translation

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. :)

Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

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

Still image Jpg

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

JAVA VERSION

hey can you make a java version for this project?

[feature request] mouse input

Very good app. Would it be possible to implement a way to transmit mouse clicks from webbrowser to the smartphone?

Security: What about httpS ?

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

Problem closing port on phone

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.

Permissions request

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."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.