Skip to content

[BUG] 搜不到电视 #1

Description

@lifesign

库的 DLNACast.search() 搜不到电视的根本原因有两个:

  1. Socket 端口绑定问题
    库用 MulticastSocket(1900) 绑定了 SSDP 的标准端口
    1900。在 Android 上这个端口通常已被系统占用,绑定失败后
    socket 为 null,所有后续的 send/receive
    都静默失败(异常被 catch 吃掉了)。你的补充扫描用
    MulticastSocket(null) 绑定随机端口,所以能正常工作。

  2. 单线程 executor 竞态
    库的 startSearch() 和 startResponseListener()
    都提交到同一个
    newSingleThreadExecutor,导致接收监听必须等发送任务完成
    后才开始,中间有一段空窗期,快速响应的设备回复的 UDP
    包就丢了。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions