我的Android Emulator运行Android 3.0,当我测试Apple的示例HLS链接时:“http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8”它运行成功。
我已经通过阅读Apple的HLS规范创建了一个自定义文件“maqm.m3u8” 参考:(https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html)
但是使用免费编码(使用ffmpegx)和分段(开源分段器)方法来创建我的自定义.m3u8文件。
当我通过上传服务器(www.simsanraj.comlu.com/maqm.m3u8)测试这个.m3u8文件时,它在safari 5.0.3和iPad2上成功播放。
然而,当我在我的Android模拟器上测试时使用相同的流(使用成功播放bipbop示例文件的相同代码),模拟器崩溃。
生成以下日志:
I/StagefrightPlayer( 33): setDataSource('httplive://www.simsanraj.comlu.com/maqm.m3u8')
I/LiveSession( 33): onConnect 'http://www.simsanraj.comlu.com/maqm.m3u8'
I/NuHTTPDataSource( 33): connect to www.simsanraj.comlu.com:80/maqm.m3u8 @0
I/NuHTTPDataSource( 33): connect to www.simsanraj.comlu.com:80/maqm.m3u8 @0
I/NuHTTPDataSource( 33): connect to simsanraj.comlu.com:80/maq.ts @0
W/ActivityManager( 74): Launch timeout has expired, giving up wake lock!
W/ActivityManager( 74): Activity idle timeout for ActivityRecord{41aafa80 com.example.testhls/.MediaPlayerDemo_Video}
I/ESQueue ( 33): found something resembling an AAC syncword at offset 36
F/ESQueue ( 33): frameworks/base/media/libstagefright/mpeg2ts/ESQueue.cpp:223 CHECK_NE( channel_configuration,0u) failed: 0 vs. 0
I/DEBUG ( 31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** **
I/DEBUG ( 31): Build fingerprint: 'generic/sdk/generic:3.0/HONEYCOMB/104254:eng/test-keys'
I / DEBUG(31):pid:33,tid:388>>> / system / bin / mediaserver<<<
I / DEBUG(31):信号11(SIGSEGV),代码1(SEGV_MAPERR),故障地址deadbaad
I / DEBUG(31) :r0 deadbaad r1 0000000c r2 00000027 r3 00000000
I / DEBUG(31):r4 00000080 r5 aff46658 r6 4070f948 r7 00000000
I / DEBUG(31):r8 a2b72589 r9 00012edc 10 00100000 fp 00000001 { {1}} I / DEBUG(31):ip ffffffff sp 4070f488 lr aff193e9 pc aff15f58 cpsr 00000030
I / DEBUG(31):#00 pc 00015f58 / system / lib / libc.so`
I/DEBUG ( 31): #01 pc 00001466 /system/lib/liblog.so (__android_log_assert)
I/NuHTTPDataSource( 33): connect to www.simsanraj.comlu.com:80/maqm.m3u8 @0
W/AudioSystem( 74): AudioPolicyService server died!
W/AudioSystem( 380): AudioFlinger server died!
W/IMediaDeathNotifier( 380): media server died
E/MediaPlayer( 380): error (100, 0)
W/AudioSystem( 140): AudioFlinger server died!
W/AudioSystem( 140): AudioPolicyService server died!
I/ServiceManager( 28): service 'media.audio_flinger' died
I/ServiceManager( 28): service 'media.player' died
I/ServiceManager( 28): service 'media.camera' died
I/ServiceManager( 28): service 'media.audio_policy' died
E/MediaPlayerDemo( 380): error: Prepare failed.: status=0x64
E/MediaPlayerDemo( 380): java.io.IOException: Prepare failed.: status=0x64
E/MediaPlayerDemo( 380): at android.media.MediaPlayer.prepare(Native Method)
E/MediaPlayerDemo( 380): at com.example.testhls.MediaPlayerDemo_Video.playVideo(MediaPlayerDemo_Video.java:84)
E/MediaPlayerDemo( 380): at com.example.testhls.MediaPlayerDemo_Video.surfaceCreated(MediaPlayerDemo_Video.java:138)
E/MediaPlayerDemo( 380): at android.view.SurfaceView.updateWindow(SurfaceView.java:565)
E/MediaPlayerDemo( 380): at android.view.SurfaceView.access$000(SurfaceView.java:84)
E/MediaPlayerDemo( 380): at
android.view.SurfaceView$3.onPreDraw(SurfaceView.java:173)
E/MediaPlayerDemo( 380): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
E/MediaPlayerDemo( 380): at android.view.ViewRoot.performTraversals(ViewRoot.java:1325)
E/MediaPlayerDemo( 380): at android.view.ViewRoot.handleMessage(ViewRoot.java:1944)
E/MediaPlayerDemo( 380): at android.os.Handler.dispatchMessage(Handler.java:99)
E/MediaPlayerDemo( 380): at android.os.Looper.loop(Looper.java:126)
E/MediaPlayerDemo( 380): at android.app.ActivityThread.main(ActivityThread.java:3997)
E/MediaPlayerDemo( 380): at java.lang.reflect.Method.invokeNative(Native Method)
E/MediaPlayerDemo( 380): at java.lang.reflect.Method.invoke(Method.java:491)
E/MediaPlayerDemo( 380): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
E/MediaPlayerDemo( 380): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
E/MediaPlayerDemo( 380): at dalvik.system.NativeStart.main(Native Method)
D/MediaPlayerDemo( 380): surfaceChanged called
I/BootReceiver( 74): Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE)
I/ActivityManager( 74): Displayed com.example.testhls/.MediaPlayerDemo_Video: +15s400ms
D/dalvikvm( 380): GC_CONCURRENT freed 123K, 4% free 6510K/6727K, paused 4ms+26ms
I/ ( 391): ServiceManager: 0xf798
D/AudioHardwareInterface( 391): setMode(NORMAL)
I/CameraService( 391): CameraService started (pid=391)
I/AudioFlinger( 391): AudioFlinger's thread 0xff88 ready to run
D/dalvikvm( 147): GC_EXPLICIT freed <1K, 18% free 14315K/17287K, paused 4ms+4ms
此外,当我在本机设备(Android平板电脑上运行Honeycomb 3.2.1)上检查此流时,平板电脑仍然挂起。
从我的阅读材料中,我学到了一些需要配置为在Android上播放HTTP实时流但不确定如何配置它的基线配置文件。
请提供一些关于我应该从哪里开始调查的提示。