小编Ale*_*ran的帖子

Chromecast发件人应用程序不会检测断开连接/重新连接

我之前使用预览SDK开发了一个Android发送器应用程序,发现当Chromecast打开或关闭时,应用程序很快就发现了这一点并更改了媒体路由按钮的状态.

但是,使用新SDK时,如果在未连接应用时拔出Chromecast,则永远不会调用MediaRouter.Callback.onRouteUnselected(),并且Cast图标仍然可见.在某些情况下,即使应用程序已关闭并再次打开,onRouteAdded也会在启动时调用先前连接的Chromecast的详细信息,即使它不再插入,因此也不在网络上,这表明某处有某种缓存.

我用我自己的应用程序(使用伴侣库)和github上的示例CastVideos-android应用程序注意到这一点.这样就设置了回调:

mMediaRouter = MediaRouter.getInstance(context);
mMediaRouteSelector = new MediaRouteSelector.Builder().addControlCategory(
    CastMediaControlIntent.categoryForCast(mApplicationId)).build();

mMediaRouterCallback = new CastMediaRouterCallback(this, context);
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
    MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);
Run Code Online (Sandbox Code Playgroud)

这会带来非常粗糙的用户体验 - 有什么方法可以改进它吗?也许我可以传递的一些标志会比CALLBACK_FLAG_PERFORM_ACTIVE_SCAN执行更加活跃的扫描,从而检测出不再在网络上的Chromecast?或者也许是我可以按时间间隔再次扫描并确保chromecast仍在那里的一些方法?我已经浏览了API,但我看不到任何东西.

编辑:更糟糕的是,我还注意到,如果Chromecast被拔掉,那么你会尝试转换它,它会断开连接(好),但是当它重新插入时不会检测到Chromecast.即使你得到它也是如此退出应用程序并重新启动它.

android google-cast chromecast

7
推荐指数
1
解决办法
1694
查看次数

在Akka流中创建来自Future的背压

我是Akka流和流的新手,因此我可能在概念层面上完全误解了某些东西,但是有什么方法可以创建背压直到未来结算?基本上我想做的是这样的:

object Parser {
    def parseBytesToSeq(buffer: ByteBuffer): Seq[ExampleObject] = ???
}

val futures = FileIO.fromPath(path)
  .map(st => Parser.parseBytesToSeq(st.toByteBuffer))
  .batch(1000, x => x)(_ ++ _)
  .map(values => doAsyncOp(values))
  .runWith(Sink.seq)

def doAsyncOp(Seq[ExampleObject]) : Future[Any] = ???
Run Code Online (Sandbox Code Playgroud)

字节被从文件中读取并且传输到分析器,其发射Seq第ExampleObjects和那些被流式传输到一个返回一个异步操作Future.我想做到这一点,直到Future结算,流的其余部分得到反压,然后一旦Future解决后再恢复,再传递Seq[ExampleObject]到doAsyncOp,恢复背压等等.

现在我有这个工作:

Await.result(doAsyncOp(values), 10 seconds)
Run Code Online (Sandbox Code Playgroud)

但我的理解是,这会锁定整个线程并且很糟糕.有没有更好的方法呢?

如果它有帮助,那么大局是我正在尝试用Jawn解析一个非常大的JSON文件(太大而不适合内存),然后将对象传递给ElasticSearch,以便在它们被解析时被编入索引 - ElasticSearch有一个包含50个待处理操作的队列,如果溢出则开始拒绝新对象.

scala akka akka-stream

7
推荐指数
1
解决办法
668
查看次数

标签 统计

akka ×1

akka-stream ×1

android ×1

chromecast ×1

google-cast ×1

scala ×1