如何解决如何在Android的libVLC中播放字节流
我想在Android的libVLC中使用媒体播放器播放字节流。但是我找不到可以“注入”字节流的任何接口或类。我唯一可以播放的机会是提供文件描述符,文件路径或URI。
Android的本机媒体播放器提供了接口 setDataSource(MediaDataSource dataSource),该接口可通过扩展MediaDataSource类来注入字节流。在Android的libVLC中是否有类似的可能性?
解决方法
您正在寻找的libVLC API是libvlc_media_new_callbacks。
但是,似乎当前没有将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,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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。