Giter Club home page Giter Club logo

androidupnpdemo's Introduction

AndroidUPnPDemo

当前使用 cling

使用方法以及Cling原理介绍可见我的简书

关于 android 投屏技术系列:

一、知识概念

这章主要讲一些基本概念, 那些 DLNA 类库都是基于这些概念来做的,了解这些概念能帮助你理清思路,同时可以提升开发效率,遇到问题也能有个解决问题的清晰思路。

二、手机与tv对接

这部分是通过Cling DLNA类库来实现发现设备的。 内容包括:

  1. 抽出发现设备所需接口
  2. 发现设备步骤的实现
  3. 原理的分析

三、手机与tv通信

2017/7/5 更新:已有功能

发现设备

  • 发现设备
  • 发现设备监听

操作功能:

  • 播放
  • 暂停
  • 停止
  • 进度拖拽
  • 音量调节
  • 设置静音

androidupnpdemo's People

Contributors

zanecc avatar

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

androidupnpdemo's Issues

android proguard

部分手机出现闪退,需要添加如下混淆规则

jetty

-keep class org.eclipse.** { ; }
-keepclasseswithmembers class * {
@org.eclipse.
* *;
}

cling 投屏

-keep class org.fourthline.** { ; }
-keepclasseswithmembers class * {
@org.fourthline.
* *;
}

-keep class org.seamless.** { ; }
-keepclasseswithmembers class * {
@org.seamless.
* *;
}

-dontwarn org.fourthline.cling.**
-dontwarn org.seamless.**
-dontwarn org.eclipse.jetty.**
-dontwarn org.slf4j.**
-dontwarn javax.servlet.**

-keep class org.slf4j.** { ;}
-keep class javax.servlet.
* { *;}

投屏界面

没有看到可以投屏的界面啊,这个要怎么做到投屏,然后在屏幕上控制tv端呢

点击播放

11-23 16:43:15.444 32687-1501/com.dlna W/System.err: [cling-23] WARN org.eclipse.jetty.servlet.ServletHandler - Error for /upnp/dev/334b9462-429d-11db-b130-2AC2DDB6110F/svc/upnp-org/AVTransport/event/cb
11-23 16:43:15.444 32687-1501/com.dlna W/System.err: java.lang.NoSuchMethodError: No interface method startAsync()Ljavax/servlet/AsyncContext; in class Ljavax/servlet/http/HttpServletRequest; or its super classes (declaration of 'javax.servlet.http.HttpServletRequest' appears in /system/framework/meizu2_jcifs.jar)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.fourthline.cling.transport.impl.AsyncServletStreamServerImpl$1.service(AsyncServletStreamServerImpl.java:107)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.Server.handle(Server.java:370)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
11-23 16:43:15.445 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
11-23 16:43:15.446 32687-1501/com.dlna W/System.err: at java.lang.Thread.run(Thread.java:761)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: [cling-12] WARN org.eclipse.jetty.servlet.ServletHandler - Error for /upnp/dev/334b9462-429d-11db-b130-2AC2DDB6110F/svc/upnp-org/RenderingControl/event/cb
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: java.lang.NoSuchMethodError: No interface method startAsync()Ljavax/servlet/AsyncContext; in class Ljavax/servlet/http/HttpServletRequest; or its super classes (declaration of 'javax.servlet.http.HttpServletRequest' appears in /system/framework/meizu2_jcifs.jar)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.fourthline.cling.transport.impl.AsyncServletStreamServerImpl$1.service(AsyncServletStreamServerImpl.java:107)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
11-23 16:43:15.448 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.Server.handle(Server.java:370)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
11-23 16:43:15.449 32687-32767/com.dlna W/System.err: at java.lang.Thread.run(Thread.java:761)

视频播放失败

demo中搜索和链接可以,投屏播放的时候提示视频播放失败

程序包org.seamless.*不存在

缺少 seamless 和 javax 相关依赖,编译不通过。
Error:(35, 25) 错误: 程序包org.seamless.util不存在
Error:(37, 32) 错误: 程序包javax.enterprise.context不存在
Error:(38, 30) 错误: 程序包javax.enterprise.event不存在
Error:(39, 31) 错误: 程序包javax.enterprise.inject不存在
Error:(40, 20) 错误: 程序包javax.inject不存在
Error:(65, 2) 错误: 找不到符号
符号: 类 ApplicationScoped

项目没法构建缺失很多包

Error:(22, 25) 错误: 程序包org.seamless.util不存在
Error:(37, 32) 错误: 程序包javax.enterprise.context不存在
Error:(39, 31) 错误: 程序包javax.enterprise.inject不存在
Error:(38, 30) 错误: 程序包javax.enterprise.event不存在
Error:(40, 20) 错误: 程序包javax.inject不存在
Error:(65, 2) 错误: 找不到符号
符号: 类 ApplicationScoped

如何投放本地视频的url?

demo里投放的是网络地址,我换成本地视频地址电视显示无法识别该文件格式?请问如何正确播放本地视频的url

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.