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