小编anz*_*anz的帖子

何时启动并绑定服务已销毁?

当我注意到两个相互矛盾的观点时,我正在浏览android中的服务文档:

在服务文档中,它在" 管理服务的生命周期"中指定

这两条路径并不完全分开.也就是说,您可以绑定到已使用startService()启动的服务.例如,可以通过使用标识要播放的音乐的Intent调用startService()来启动背景音乐服务.之后,可能当用户想要对播放器进行一些控制或获取有关当前歌曲的信息时,活动可以通过调用bindService()绑定到服务.在这种情况下,stopService()或stopSelf()实际上不会停止服务,直到所有客户端解除绑定.

但是在关于管理绑定服务的生命周期中的绑定服务的文档中

但是,如果您选择实现onStartCommand()回调方法,则必须显式停止该服务,因为现在认为该服务已启动.在这种情况下,服务一直运行,直到服务使用stopSelf()或其他组件调用stopService()停止自身,无论它是否绑定到任何客户端.

可能是我,但我认为这些陈述是矛盾的.有人可以澄清......

android android-service

54
推荐指数
2
解决办法
2万
查看次数

在android上播放本地m3u8文件,显示setDataSourceFD失败:状态= 0x80000000

我正在尝试使用android mediaplayer类播放存储在我的SD卡中的本地m3u8文件.m3u8文件和.ts文件位于同一目录中.当我打开m3u8时,像MXPlayer这样的第三方播放器会加入ts文件并播放视频.但是使用android mediaplayer类会引发以下错误

无法创建媒体播放器错误:setDataSourceFD失败:status = 0x80000000 java.io.IOException:setDataSourceFD failed:status = 0x80000000 at android.media.MediaPlayer.setDataSource(Native Method)at android.media.MediaPlayer.setDataSource(MediaPlayer .java:1204)com.tcs.hlsvideo.StreamingPlayer.playVideo(StreamingPlayer.java:87)位于android.view.SurfaceView.updateWindow(SurfaceView. java:609)android.view.SurfaceView.access $ 000(SurfaceView.java:86)android.view.SurfaceView $ 3.onPreDraw(SurfaceView.java:178)android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:707) )在Android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1143)的android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1981)android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4667)at android android.view.Choreographer.doCa .view.Choreographer $ CallbackRecord.run(Choreographer.java:725)llbacks(Choreographer.java:555)位于android.view.Choreographer.doFrame(Choreographer.java:525)的android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:711),位于android.os.Handler.handleCallback(Handler) .java:615)在Android.app.A.运行时,Android.A.Tharead.main(ActivityThread.java:4960)的android.os.Handler.dispatchMessage(Handler.java:92)在android.os.Looper.loop(Looper.java:137) at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:511)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 1038)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)at dalvik.system.NativeStart.main(Native Method)setDataSourceFD failed:status = 0x80000000

我使用的代码是

private static final String TAG = StreamingPlayer.class.getSimpleName();

private String formatedIpAddress;

private int mVideoWidth;
private int mVideoHeight;
private MediaPlayer mMediaPlayer;
private SurfaceView mPreview;
private SurfaceHolder holder;
private String path;

//private boolean mIsVideoSizeKnown = false;
private boolean …
Run Code Online (Sandbox Code Playgroud)

java video android media-player m3u8

10
推荐指数
1
解决办法
2268
查看次数

从HLS流中提取元数据(m3u8文件)

我有一个要求,我需要从Android中的HLS流中提取元数据.我找到了两个库FFMPEG和VITAMIO.考虑到HLS流媒体在Android上的零碎支持,在阅读了大量更令人困惑的文章之后,我已经完成了上述两个库的进一步研究.我还没有找到一个单独的应用程序,其中提取元数据(定时元数据)已经在Android上完成.

如果在Android上甚至可能,我很困惑.如果是这样,我应该使用哪种方法......帮助我......

android ffmpeg http-live-streaming m3u8 vitamio

2
推荐指数
1
解决办法
7380
查看次数