android-layout - 使用 Libstreaming 库在加载 VideoView 时自动播放音频 (Android)

标签 android-layout android-activity wowza libstreaming

我正在开发一个phonegap应用程序,它有一个VideoView屏幕来播放音频(来自Wowza流引擎)。我的问题是,我想在 VideoView 加载到屏幕上时立即播放音频。我的应用程序中当前发生的情况,当我的 VideoView 加载时,它甚至不会显示在屏幕上(当我触摸屏幕时它会显示,这是另一个问题)。

现在,当它出现在触摸屏幕上时,我必须单击播放按钮才能开始播放音频。 (我正在使用 libstreaming 库)

这是我的代码-

activity_main.xml

<io.vov.vitamio.widget.VideoView
    android:id="@+id/video_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true"
    android:visibility="visible"
    />

Activity 类别:

private VideoView mVideoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.activity_main);

    if (!LibsChecker.checkVitamioLibs(this))
        return;

    mVideoView = (VideoView) findViewById(R.id.video_view);
    mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);
    mVideoView.getHolder().setFormat(PixelFormat.RGBX_8888);
    startRtmpStream();
}

public void startRtmpStream() {
    mVideoView.setVideoPath(AppConfig.STREAM_URL_AUDIO_ONLY);
    mVideoView.setMediaController(new MediaController(this));
    mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            mediaPlayer.setPlaybackSpeed(1.0f);
        }
    });
    mVideoView.start();
}

AppConfig.java

public class AppConfig {
     public static final String STREAM_URL_AUDIO_ONLY = "rtmp://10.101.3.129:1935/app1/myStream";
     public static final String PUBLISHER_USERNAME = "";
     public static final String PUBLISHER_PASSWORD = "";}

最佳答案

我就是这样解决的。

实际上,如果 Wowza 媒体服务器上相应应用程序的传入流选项卡包含运行模式下的音频,Vitamio 媒体播放器会自动开始播放音频。

我的意思是,仅当 Audio 在 Wowza 媒体服务器上启动并运行时才调用 Vitamio 的 start() 方法。

我所做的是,我首先检查(每 5 秒)音频是否在 Wowza 上启动并运行(从另一个设备获取音频流),如果它正在运行,则调用 start() 方法。

检查this link

当 Wowza 服务器上的音频未运行且 Vitamio start() 方法被执行时,就会出现此问题。 您必须实现 RestAPI Web 服务来在一定时间间隔内检查 Wowza 上的音频。

关于android-layout - 使用 Libstreaming 库在加载 VideoView 时自动播放音频 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33865830/

相关文章:

java - 如何在焦点时放大 EditText?

android - uri 未注册 http ://schemas. android.com/apk/res/android

php - Wowza 服务器上的 PHP 脚本的 HTTP 身份验证失败?

android - 如何在 Android 浏览器中检查元素

Android XML 转义 "@"符号

android - 将实时背景添加到 Android View (如 Twitter 应用程序)

android - Intent.FLAG_ACTIVITY_CLEAR_TOP 销毁目标 Activity 。如何避免?

android - 将 Activity 1 中的 View 转换/动画化为 Activity 2 中的 View

android - 在 Android 中使用 Wowza Server 获取实时 ip 地址的实时视频广播

audio - 使用 ffmpeg 设置单独的音频和视频文件,同时将 rtsp 传输到 wowza