如何在Android的libVLC中播放字节流
我想在libVLC for Android中用媒体播放器播放字节流。但我找不到任何可以“注入”字节流的接口或类。我唯一的回放机会是提供文件描述符、文件路径或URI如何在Android的libVLC中播放字节流,android,libvlc,Android,Libvlc,我想在libVLC for Android中用媒体播放器播放字节流。但我找不到任何可以“注入”字节流的接口或类。我唯一的回放机会是提供文件描述符、文件路径或URI Android的本机媒体播放器提供了接口setDataSource(MediaDataSource dataSource),通过扩展MediaDataSource类,可以在该接口中注入字节流。我在Android的libVLC中也有类似的可能性吗?您正在寻找的libVLC API是 然而,目前似乎还没有向Java公开与Java流参数一起
Android的本机媒体播放器提供了接口setDataSource(MediaDataSource dataSource),通过扩展MediaDataSource类,可以在该接口中注入字节流。我在Android的libVLC中也有类似的可能性吗?您正在寻找的libVLC API是 然而,目前似乎还没有向Java公开与Java流参数一起使用。我相信这需要您在libvlcjni绑定中实现 您可以从使用该API的现有代码中获得灵感
void
Java_org_videolan_libvlc_Media_nativeNewFromFdWithOffsetLength(
JNIEnv *env, jobject thiz, jobject libVlc, jobject jfd, jlong offset, jlong length)
{
vlcjni_object *p_obj;
int fd = FDObject_getInt(env, jfd);
if (fd == -1)
return;
p_obj = VLCJniObject_newFromJavaLibVlc(env, thiz, libVlc);
if (!p_obj)
return;
p_obj->u.p_m =
libvlc_media_new_callbacks(p_obj->p_libvlc,
media_cb_open,
media_cb_read,
media_cb_seek,
media_cb_close,
p_obj);
if (Media_nativeNewCommon(env, thiz, p_obj) == 0)
{
vlcjni_object_sys *p_sys = p_obj->p_sys;
p_sys->media_cb.fd = fd;
p_sys->media_cb.offset = offset;
p_sys->media_cb.length = length >= 0 ? length : UINT64_MAX;
}
}
libvlcsharp已经实现了这一点,包括Android平台,但它是.NET