如何解决Android Studio ExoPlayer 我错在哪里
我正在尝试通过此 URI 进行流式传输:
rtsp://192.168.43.123:8080/h264_pcm.sdp
我刚刚尝试使用 VideoView
,但延迟为 20 秒或更长时间
2021-07-11 12:25:17.962 29357-30421/com.l3.m4o E/ExoPlayerImplInternal: Playback error
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:580)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:246)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: java.net.ConnectException: Failed to connect to /192.168.1.102 (port 8080) from /:: (port 59858): connect Failed: ECONNREFUSED (Connection refused)
at libcore.io.IoBridge.connect(IoBridge.java:142)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.socksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.socket.connect(Socket.java:621)
at java.net.socket.connect(Socket.java:570)
at java.net.socket.<init>(Socket.java:450)
at java.net.socket.<init>(Socket.java:218)
at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:279)
at com.google.android.exoplayer2.source.rtsp.RtspClient.getSocket(RtspClient.java:248)
at com.google.android.exoplayer2.source.rtsp.RtspClient.start(RtspClient.java:157)
at com.google.android.exoplayer2.source.rtsp.RtspMediaPeriod.prepare(RtspMediaPeriod.java:145)
at com.google.android.exoplayer2.source.MaskingMediaPeriod.prepare(MaskingMediaPeriod.java:145)
at com.google.android.exoplayer2.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:1931)
at com.google.android.exoplayer2.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:1911)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:911)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:246)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: android.system.ErrnoException: connect Failed: ECONNREFUSED (Connection refused)
at libcore.io.Linux.connect(Native Method)
at libcore.io.ForwardingOs.connect(ForwardingOs.java:94)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:138)
at libcore.io.ForwardingOs.connect(ForwardingOs.java:94)
at libcore.io.IoBridge.connectErrno(IoBridge.java:156)
at libcore.io.IoBridge.connect(IoBridge.java:134)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.socksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.socket.connect(Socket.java:621)
at java.net.socket.connect(Socket.java:570)
at java.net.socket.<init>(Socket.java:450)
at java.net.socket.<init>(Socket.java:218)
at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:279)
at com.google.android.exoplayer2.source.rtsp.RtspClient.getSocket(RtspClient.java:248)
at com.google.android.exoplayer2.source.rtsp.RtspClient.start(RtspClient.java:157)
at com.google.android.exoplayer2.source.rtsp.RtspMediaPeriod.prepare(RtspMediaPeriod.java:145)
at com.google.android.exoplayer2.source.MaskingMediaPeriod.prepare(MaskingMediaPeriod.java:145)
at com.google.android.exoplayer2.ExoPlayerImplInternal.maybeUpdateLoadingPeriod(ExoPlayerImplInternal.java:1931)
at com.google.android.exoplayer2.ExoPlayerImplInternal.updatePeriods(ExoPlayerImplInternal.java:1911)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:911)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:246)
at android.os.HandlerThread.run(HandlerThread.java:67)
我的Java代码:
public class MainActivity extends AppCompatActivity {
final static String RTSP_URL = "rtsp://192.168.1.102:8080/h264_pcm.sdp";
PlayerView playerView;
SimpleExoPlayer player;
Uri URI = Uri.parse(RTSP_URL);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
playerView = (PlayerView) findViewById(R.id.player_view);
player = new SimpleExoPlayer.Builder(this).build();
MediaSource mediaSource =
new RtspMediaSource.Factory()
.createMediaSource(MediaItem.fromUri(URI));
playerView.setPlayer(player);
player.setMediaSource(mediaSource);
player.prepare();
player.play();
}
}
我想,我会尝试使用 libVlc
因为在 Android VLC 应用程序上它可以工作,但我不知道它是如何工作的,如果您能指导我我将非常感谢 xD 或告诉我在哪里Exoplayer
出错了。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。