我想使用 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 源一起使用?