Android 如何在流媒体中录制HLS?
我已经创建了android应用程序,其中有Android 如何在流媒体中录制HLS?,android,video-streaming,android-mediaplayer,video-capture,video-recording,Android,Video Streaming,Android Mediaplayer,Video Capture,Video Recording,我已经创建了android应用程序,其中有m3u8流媒体链接。现在我想让用户在任何阶段录制视频 视频播放,也可以停在我想停的地方。但我在谷歌上搜索了一下,没有关于堆栈溢出和其他android帮助的解决方案 地点。我是这个部门的新手,请尽快帮助我 可能的现在我被困在这一部分。我得到一个链接,但没有帮助 我制作了一个定制的mediaplayer,它正在跟进,我只给了该媒体播放器的m3u8链接,它使用android的默认媒体播放器播放 <FrameLayout an
m3u8
流媒体链接。现在我想让用户在任何阶段录制视频
视频播放,也可以停在我想停的地方。但我在谷歌上搜索了一下,没有关于堆栈溢出和其他android帮助的解决方案
地点。我是这个部门的新手,请尽快帮助我
可能的现在我被困在这一部分。我得到一个链接,但没有帮助
我制作了一个定制的mediaplayer,它正在跟进,我只给了该媒体播放器的m3u8
链接,它使用android的默认媒体播放器播放
<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>
根据您实际播放视频的方式,您需要访问负责视频和音频的任何曲目渲染器,然后将这些信息写入磁盘,最后将它们合并到一个文件中。如果您已经构建了一个m3u8播放器,那么您已经有了这些信息。如果没有,首先让它播放,这样你就可以看到数据进来时的样子。我编辑了上面的代码,并向你提供了更多信息。我只是将m3u8链接传递给媒体播放器,它使用默认的android媒体播放器播放视频,只播放播放视频播放器的代码。setDataSource(这个,Uri.parse(livechannelurl));player.setOnPreparedListener(myContext);在视频播放过程中的任何阶段都可以使用这种方法录制视频吗?不幸的是,不可以,您需要了解实际渲染的内容,因为在这一点上,您可以访问缓冲数据。我不知道你是否可以访问默认播放器上的渲染器。有人建议你把它作为一个开始,但这是我所不知道的。谢谢你的回复,但它不起作用。我还没有时间深入研究这个问题,我也想知道答案。我会看看我是否能在周末完成,也许可以尝试一些事情。