已解决 【求助贴】Mirai点歌插件下配置ffmpeg_path导致端口被占用的问题
-
我发现错误出现的时间点是在我安装完Mirai点歌插件 后,并且在系统变量中配置好ffmpeg_path(用于在qq中发送amr语音) 之后,将ffmpeg.exe拖到mcl的根目录里。——————此时运行mcl会有如上的占用error;
尝试删掉位于根目录下的ffmpeg.exe,再次运行mcl,仍然出现同样的error。
再次删除:将系统变量path中删除M:\mirai\ffmpeg\bin,此时再次运行mcl,点歌插件提示:
并且没有以上的占用报错出现。问题完美解决(误)于是乎,解决办法是不去使用此点歌插件的语音功能。
但是不知道是否有兼容的解决办法。
-
第一个错误
E/net.mamoe.mirai-api-http: kotlinx.coroutines.JobCancellationException: LazyStandaloneCoroutine is cancelling; job=LazyStandaloneCoroutine{Cancelling}@476fde05
kotlinx.coroutines.JobCancellationException: LazyStandaloneCoroutine is cancelling; job=LazyStandaloneCoroutine{Cancelling}@476fde05
Caused by: java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:552)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:336)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:88)
at io.ktor.network.sockets.ConnectUtilsJvmKt.bind(ConnectUtilsJvm.kt:32)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:46)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:30)
at io.ktor.network.sockets.TcpSocketBuilder.bind$default(TcpSocketBuilder.kt:29)
at io.ktor.server.cio.backend.HttpServerKt$httpServer$acceptJob$1.invokeSuspend(HttpServer.kt:46)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)** -
第二个错误
E/MahKtorAdapter[http,ws]: java.net.BindException: Address already in use: bind
java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:552)
at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:336)
at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294)
at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:88)
at io.ktor.network.sockets.ConnectUtilsJvmKt.bind(ConnectUtilsJvm.kt:32)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:46)
at io.ktor.network.sockets.TcpSocketBuilder.bind(TcpSocketBuilder.kt:30)
at io.ktor.network.sockets.TcpSocketBuilder.bind$default(TcpSocketBuilder.kt:29)
at io.ktor.server.cio.backend.HttpServerKt$httpServer$acceptJob$1.invokeSuspend(HttpServer.kt:46)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
-
-
为什么要启动两个,两个读同一个配置文件,端口就冲突了啊
-
@fuyon 你说的“两个”是指2个插件读同一个config目录下的文件吗?还是java和javac冲突了(懵)
-
两个错误都是端口被占用
-
你是不是安装了两个mah
-
我再试一试
-
@karlatemp 抱歉,我并不了解mah是什么。该从哪里定位它们。
-
@fuyon mah是mirai-api-http的缩写啊,在 plugins 文件夹内
-
此回复已被删除! -
你可以使用
netstat -aof | findstr 1234
查找是哪个程序占用的端口 -
@karlatemp 好的
-
@karlatemp **我发现错误出现的时间点是在我安装完Mirai点歌插件 后,并且在系统变量中配置好ffmpeg_path(用于在qq中发送amr语音) 之后,将ffmpeg.exe拖到mcl的根目录里。——————此时运行mcl会有如上的占用error;
尝试删掉位于根目录下的ffmpeg.exe,再次运行mcl,仍然出现同样的error。
再次尝试:将系统变量path中删除M:\mirai\ffmpeg\bin,此时再次运行mcl,点歌插件提示:
并且没有以上的占用报错出现。于是乎,解决办法是不去使用此点歌插件的语音功能。
但是不知道是否有兼容的解决办法。
-
大佬 我和你一样问题,请问您解决了没