Android 播放Rtmp流 的demo
时间: 2023-08-07 10:38:22 浏览: 57
以下是一个简单的Android播放RTMP流的示例代码:
首先,在build.gradle中添加以下依赖项:
```gradle
implementation 'com.github.pedroSG94.vlc-example-streamplayer:core:v3.3.2'
implementation 'com.github.pedroSG94.vlc-example-streamplayer:rtmp:v3.3.2'
```
接下来,在布局文件中添加一个SurfaceView用于显示视频:
```xml
<SurfaceView
android:id="@+id/surfaceView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
然后,在Activity或Fragment中,您可以使用以下代码来初始化播放器并开始播放RTMP流:
```java
import android.net.Uri;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import androidx.appcompat.app.AppCompatActivity;
import com.github.pedrosg94.vlc.VlcListener;
import com.github.pedrosg94.vlc.VlcVideoLibrary;
public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback, VlcListener {
private SurfaceView surfaceView;
private VlcVideoLibrary vlcVideoLibrary;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
surfaceView = findViewById(R.id.surfaceView);
surfaceView.getHolder().addCallback(this);
vlcVideoLibrary = new VlcVideoLibrary(this, this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
vlcVideoLibrary.setSurface(holder.getSurface(), null);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void onComplete() {
}
@Override
public void onError() {
}
@Override
public void onBuffering(boolean b) {
}
@Override
public void onPlaying() {
}
@Override
public void onVideoSizeChanged(int i, int i1) {
}
@Override
public void onBack() {
}
@Override
protected void onResume() {
super.onResume();
vlcVideoLibrary.play(Uri.parse("rtmp://your_rtmp_stream_url"));
}
@Override
protected void onDestroy() {
super.onDestroy();
vlcVideoLibrary.stop();
}
}
```
在上面的代码中,我们创建了一个`VlcVideoLibrary`对象,并将其传递给了一个实现了`SurfaceHolder.Callback`和`VlcListener`接口的Activity或Fragment中。然后,在`onResume()`方法中,我们调用`vlcVideoLibrary.play(Uri.parse("rtmp://your_rtmp_stream_url"))`来开始播放RTMP流。最后,在`onDestroy()`方法中,我们调用`vlcVideoLibrary.stop()`来停止播放器并释放资源。
请注意,您需要将`"rtmp://your_rtmp_stream_url"`替换为实际的RTMP流URL。
希望这可以帮助您开始播放RTMP流!