小编Lo-*_*Tan的帖子

使用ExoPlayer播放YouTube视频

我有兴趣使用ExoPlayer进行YouTube视频播放.我从ExoPlayer示例中看到他们通过DASH URL播放YouTube视频.

我正在使用Android YouTube API搜索视频,但没有找到获取任何搜索结果的DASH URL的方法.有人知道将YouTube API(v3)与ExoPlayer集成的任何示例(不使用硬编码的视频网址),或者知道如何从YouTube API获取我需要的信息以将视频加载到ExoPlayer中?

android youtube-api android-youtube-api exoplayer

33
推荐指数
1
解决办法
4815
查看次数

Jersey JAXRS过滤器,在命中资源(Web服务)之前提供解组实体

是否有一种优雅的方式(过滤器,钩子)来拦截泽西岛中的一个解组实体(及其注释),然后才能点击Web服务资源方法 - 那些用@ POST,@ PUT注释的方法.

我真的需要实体本身及其上的任何注释,然后使用验证器注释的属性对该实体执行验证(看起来像JSR 303,但我们不使用元数据注释整个bean).从资源的实现角度来看,我的目标是能够在资源方法中键入它:

@Path("/people")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public class PeopleService {
        @POST
        public Response createPerson(@CustomValidator("personValidator") Person person) throws URISyntaxException {
            String uri = someService.createPerson(person);
            return Response.created(new URI(uri)).entity(uri).build();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我开始编写自定义MessageBodyReader的路径,并设法让JSON完全正常工作,因为我只是委托给ObjectMapper来反序列化JSON.除此之外,我交给参数的注释,事情很完美.但是,当我需要反序列化XML时,事情就崩溃了.我不知道如何获得Jersey会使用的原始解串器并委托给它.我也觉得我不必要地重写Jersey的一部分,并且如果jersey在MessageBodyReader之后有一个层并且在实现调用允许自己扩展的web资源服务之前,我宁愿停止使用MessageBodyReader作为hacky集成点.可以为流添加自定义行为.

最终,泽西岛有没有任何扩展点,它可以交给我解组实体及其任何参数anntotations,并允许我进行自定义处理?或者我是否必须弄清楚如何自己解组实体(使用JAXBContext或不使用)?可能诉诸AOP?将验证器注入资源类并放弃该注释想法?

泽西版:1.5

java jax-rs jaxb jersey java-ee

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