如何在流媒体中录制 HLS?

hum*_*que 6 android video-capture video-streaming video-recording android-mediaplayer

我创建了 android 应用程序,其中有m3u8流链接。现在我希望用户在视频播放期间的任何阶段录制视频,并且也可以在我想要的地方停止。但是我用谷歌搜索了它,堆栈溢出和其他 android 帮助站点没有可用的解决方案。我是本节的新手请尽快帮助我。现在我被困在这个部分。我得到一个链接但没有帮助

如何从 IP Cam 录制 http 直播流

我把它做成了一个自定义的m3u8媒体播放器,我只是给了那个媒体播放器的链接,它使用安卓的默认媒体播放器播放

  <FrameLayout
            android:id="@+id/videoSurfaceContainer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/videoplayer_title">

            <SurfaceView
                android:id="@+id/videoSurface"
                android:background="@android:color/transparent"
                android:layout_width="match_parent"
                android:layout_below="@+id/videoplayer_title"
                android:layout_height="200dp"
                />

            <ImageView
                android:id="@+id/videoplayer_icon"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:background="@android:color/transparent"
                android:visibility="gone"
                />

            <ProgressBar
                android:id="@+id/progressbar"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:layout_gravity="center"
                android:layout_below="@+id/videoplayer_title"
                android:background="@android:color/transparent"
                android:visibility="gone"
                />
            <LinearLayout

                android:id="@+id/ll_controls_layout"
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:background="@drawable/media_controls_bg"
                android:orientation="vertical"
                android:layout_gravity="bottom"
                android:visibility="visible">

                <RelativeLayout

                    android:layout_width="match_parent"
                    android:layout_height="40dp"


                    >

                    <ImageButton
                        android:id="@+id/pause"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="5dp"
                        android:background="@android:color/transparent"
                        android:src="@drawable/pause_btn" />


                    <SeekBar
                        android:id="@+id/mediacontroller_progress"
                        android:layout_width="match_parent"
                        android:minHeight="6dip"
                        android:layout_toRightOf="@+id/pause"
                        android:maxHeight="6dip"
                        android:thumb="@drawable/abc_switch_thumb_material"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:progressDrawable="@drawable/styled_progress"
                        android:paddingLeft="15dp"
                        android:paddingRight="15dp"
                        android:layout_toLeftOf="@+id/time_current"
                        android:layout_marginLeft="3dp"
                        android:indeterminate="false"
                        android:visibility="visible"/>

                    <TextView
                        android:id="@+id/time_current"
                        android:layout_width="40dp"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:textColor="@android:color/white"
                        android:layout_centerVertical="true"
                        android:layout_toLeftOf="@+id/time"
                        android:paddingRight="3dp"
                        android:gravity="right"
                        android:textSize="10dp"
                        android:visibility="gone" />

                    <TextView
                        android:id="@+id/time"
                        android:layout_width="40dp"
                        android:layout_height="wrap_content"
                        android:textColor="@android:color/white"
                        android:gravity="left"
                        android:layout_toLeftOf="@+id/recording_btn"
                        android:layout_centerVertical="true"
                        android:textSize="10dp"
                        android:visibility="gone" />

                    <ImageButton
                        android:id="@+id/recording_btn"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:layout_centerVertical="true"
                        android:background="@android:color/transparent"
                        android:layout_toLeftOf="@+id/fullscreen"
                        android:src="@drawable/startrecording_btn" />

                    <ImageButton
                        android:id="@+id/fullscreen"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="4dp"
                        android:layout_marginRight="5dp"
                        android:layout_alignParentRight="true"
                        android:background="@android:color/transparent"
                        android:src="@drawable/ic_media_fullscreen_stretch" />

                </RelativeLayout>
            </LinearLayout>
        </FrameLayout>
Run Code Online (Sandbox Code Playgroud)