1:使用的GRPC客户端版本Grpc.Net.ClientFactory dll版本2.55.0
2:项目使用GrpcClientFactory注入,GrpcChannelOptions的EnableMultipleHttp2Connections已设置为true,并且已开启心跳检测
出现问题:服务上线后,第一次开启服务请求会导致客户端DeadLine
具体报错:Grpc.Core.RpcException: Status(StatusCode="DeadlineExceeded", Detail="")
每个客户端请求deadline都是设置的15s超时.
出现超时后重启服务就没有超时了
请问这是什么原因
没遇到过,github给的方案试试。修改下客户端设置。https://github.com/googleapis/google-cloud-dotnet/issues/2985
var clientSettings = BigtableTableAdminSettings.GetDefault();
var longTimeout = CallTiming.FromTimeout(TimeSpan.FromMinutes(3));
clientSettings.CreateTableSettings = clientSettings.CreateTableSettings.WithCallTiming(longTimeout);
var client = BigtableTableAdminClient.Create(settings: clientSettings);
这个方案是GoogleApi的,不适用的
非常抱歉,我的回答中的内容出现了重复。在之前的回答中,我已经提供了与您代码和权限相关的解决方案。
如果您已经检查了网络连接、设备支持和编码格式,并且在其他设备上也无法播放RTSP流,请考虑使用ExoPlayer库来处理RTSP流。ExoPlayer是一个功能强大的多媒体播放器库,支持各种流媒体协议和格式。
您可以按照以下步骤使用ExoPlayer库播放RTSP流:
在项目的build.gradle文件中添加ExoPlayer的依赖:
groovy
Copy code
implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X' (如果需要UI控件)
在您的Activity或Fragment中创建ExoPlayer实例,并设置视频源:
java
Copy code
SimpleExoPlayer player = new SimpleExoPlayer.Builder(context).build();
player.setMediaItem(MediaItem.fromUri(Uri.parse("rtsp://192.168.1.23:554/mpeg4/ch1/sub/av_stream")));
player.prepare();
player.play();
请注意,您需要将X.X替换为您所需的ExoPlayer版本号。
通过使用ExoPlayer库,您可以获得更好的流媒体支持和更多的自定义选项来处理RTSP流播放。
希望这可以帮助您解决问题。如果您有任何其他疑问,请随时提问。
ChatGPT回答的不相关的内容就不用贴了
Grpc.Net.ClientFactory 2.55.0版本代码BUG
@dudu
– 劣人的小板凳 1年前初步怀疑是DnsResolverFactory解析dns失败导致请求未成功,直接DeadLine
– 劣人的小板凳 1年前