带有 RTSP 源的 Android Google VrVideoView

Posted

技术标签:

【中文标题】带有 RTSP 源的 Android Google VrVideoView【英文标题】:Android Google VrVideoView with RTSP source 【发布时间】:2017-02-16 12:32:25 【问题描述】:

我想使用 VrVideoView 在我的 android 应用中显示 VR 视频。视频通过 RTSP 协议流式传输。当我尝试将此类源添加到 VrVideoView 时,我得到了

java.net.MalformedURLException: unknown protocol: rtsp

我发现这个项目RTSP-Java-UrlConnection 解决了这个异常,但显示了另一个:

ExoPlayerImplInternal:内部轨道渲染器错误。 com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.upstream.Loader$UnexpectedLoaderException: Unexpected ClassCastException: com.net.rtsp.RtspURLConnection 无法转换为 java.net.HttpURLConnection 在 com.google.android.exoplayer.SampleSourceTrackRenderer.maybeThrowError(SampleSourceTrackRenderer.java:262) 在 com.google.android.exoplayer.SampleSourceTrackRenderer.maybeThrowError(SampleSourceTrackRenderer.java:148) 在 com.google.android.exoplayer.ExoPlayerImplInternal.incrementalPrepareInternal(ExoPlayerImplInternal.java:273) 在 com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:203) 在 android.os.Handler.dispatchMessage(Handler.java:98) 在 android.os.Looper.loop(Looper.java:148) 在 android.os.HandlerThread.run(HandlerThread.java:61) 在 com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40) 引起:com.google.android.exoplayer.upstream.Loader$UnexpectedLoaderException: Unexpected ClassCastException: com.net.rtsp.RtspURLConnection 无法转换为 java.net.HttpURLConnection 在 com.google.android.exoplayer.upstream.Loader$LoadTask.run(Loader.java:235) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 在 java.lang.Thread.run(Thread.java:818) 引起:java.lang.ClassCastException:com.net.rtsp.RtspURLConnection 不能被强制转换为 java.net.HttpURLConnection 在 com.google.android.exoplayer.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:384) 在 com.google.android.exoplayer.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:339) 在 com.google.android.exoplayer.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:189) 在 com.google.android.exoplayer.upstream.DefaultUriDataSource.open(DefaultUriDataSource.java:133) 在 com.google.android.exoplayer.extractor.ExtractorSampleSource$ExtractingLoadable.load(ExtractorSampleSource.java:823) 在 com.google.android.exoplayer.upstream.Loader$LoadTask.run(Loader.java:222) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423) 在 java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 在 java.lang.Thread.run(Thread.java:818)

Google VrVideoView 似乎只接受带有 HTTP URL 的视频。如何将 VrVideoView 与 RTPS 源一起使用?

【问题讨论】:

【参考方案1】:

这是一个答案:

我们没有任何计划在 VR 视图中支持实时视频。你可以 使用较低级别的 GVR 视图类滚动您自己的 360 查看器, 尽管。来源:https://github.com/googlevr/gvr-android-sdk/issues/217#issuecomment-244588848

【讨论】:

以上是关于带有 RTSP 源的 Android Google VrVideoView的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg接收rtsp流问题

Android 从 Google 驱动器流式传输视频

带有 Google 地图的 Android 版 Facebook Messenger

关于下面这个直播源的转换

如何通过滑行在 Google 地图上的 infoWindow 中获取图像 - Android

android 怎么播放rtsp流