Debug SmsManager within Android SDK emulator - android

I'm testing a 3rd party application within the Android SDK emulator, which is designed to send out an SMS text message for registration. I don't have the source code for this application but is it possible to use a debugger with the emulator to intercept the call to SmsManager and determine what information is being sent and to what destination?
Thanks!

Since you have the source code, all you can do is watch adb logcat output. Also you can use "adb logcat -b radio" to watch any modem commands. for example, you will see the following if you are trying to send a sms. It depends on what you want to debug.
D/AT ( 29): AT> AT+CSQ
D/AT ( 29): AT< +CSQ: 7,99
D/AT ( 29): AT< OK
D/RILJ ( 95): [0058]< SIGNAL_STRENGTH {7, 99, 0, 0, 0, 0, 0}
D/RILJ ( 95): WAKE_LOCK_TIMEOUT mReqPending=0 mRequestList=1
D/RILJ ( 95): 0: [19] SET_NETWORK_SELECTION_AUTOMATIC
D/SMS ( 95): SMS send size=0time=1353001019635
D/RILJ ( 95): [0059]> SEND_SMS
D/RIL ( 29): onRequest: SEND_SMS
D/AT ( 29): AT> AT+CMGS=13
D/AT ( 29): AT< >
D/AT ( 29): AT> 00010004815545000004e432990c^Z
D/AT ( 29): AT< +CMGS: 0
D/AT ( 29): AT< OK
D/RILJ ( 95): [0059]< SEND_SMS { messageRef = 0, errorCode = 0, ackPdu = null}
D/SMS ( 95): SMS send complete. Broadcasting intent: PendingIntent{44c8c118: android.os.BinderProxy#44c8c0e0}

Related

Cannot create org.webrtc.voiceengine.WebRtcAudioManager on Android

I have a functional implementation of native (C++) WebRTC in Windows, which I'm trying to get working on every other platform now. Currently, I'm attacking Android.
When I call webrtc::CreatePeerConnectionFactory, it cannot create the java class org.webrtc.voiceengine.WebRtcAudioManager. I get the following result (followed by a crash!):
I audio_processing_impl.cc: (line 292): Injected APM submodules:
I audio_processing_impl.cc: Echo control factory: 0
I audio_processing_impl.cc: Echo detector: 0
I audio_processing_impl.cc: Capture analyzer: 0
I audio_processing_impl.cc: Capture post processor: 0
I audio_processing_impl.cc: Render pre processor: 0
I audio_processing_impl.cc: (line 301): Denormal disabler: supported
I webrtc_voice_engine.cc: (line 312): WebRtcVoiceEngine::WebRtcVoiceEngine
I webrtc_video_engine.cc: (line 648): WebRtcVideoEngine::WebRtcVideoEngine()
I webrtc_voice_engine.cc: (line 334): WebRtcVoiceEngine::Init
I audio_device_impl.cc: (line 76): Create
I audio_device_impl.cc: (line 84): CreateForTest
I audio_device_buffer.cc: (line 65): AudioDeviceBuffer::ctor
I audio_device_impl.cc: (line 121): AudioDeviceModuleImpl
I audio_device_impl.cc: (line 125): CheckPlatform
I audio_device_impl.cc: (line 133): current platform is Android
I audio_device_impl.cc: (line 155): CreatePlatformSpecificObjects
I audio_device_impl.cc: (line 947): PlatformAudioLayer
I jvm_android.cc: (line 72): JvmThreadConnector::ctor
I jvm_android.cc: (line 77): Attaching thread to JVM
I jvm_android.cc: (line 262): JVM::environment
I jvm_android.cc: (line 184): JNIEnvironment::ctor
I audio_manager.cc: (line 71): ctor
I jvm_android.cc: (line 196): JNIEnvironment::RegisterNatives: org/webrtc/voiceengine/WebRtcAudioManager
I jvm_android.cc: (line 134): NativeRegistration::ctor
I jvm_android.cc: (line 146): NativeRegistration::NewObject
I org.webrtc.Logging: WebRtcAudioManager: ctor#[name=Thread-15, id=21131]
W System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
W System.err: at org.webrtc.voiceengine.WebRtcAudioManager.<init>(WebRtcAudioManager.java:176)
E rtc : #
E rtc : # Fatal error in: ../../modules/utility/source/jvm_android.cc, line 151
E rtc : # last system error: 0
E rtc : # Check failed: !jni_->ExceptionCheck()
E rtc : # Error during NewObjectV
F libc : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 28384 (Thread-15), pid 27615 (.qgroundcontrol)
This what that failing Java line looks like:
audioManager =
(AudioManager) ContextUtils.getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
I'm using WebRTC M103 (branch-heads/5060).
I've linked to libwebrtc.a, dynamically loaded libjingle_peerconnection_so.so, and bundled libwebrtc.jar. All of those seemed to be required dependencies, and advanced the ball for me one-by-one as I added them into the equation.
Fixed! This is what I was missing:
I was calling webrtc::JVM::Initialize prior to webrtc::CreatePeerConnectionFactory (which is one of many Droid specific requirements they don't bother mention in any docs...). But, I missed the fact there is an overload which takes the Droid app context (i.e. static void Initialize(JavaVM* jvm, jobject context);). That is to say, I was only passing the jvm pointer when initializing.
After a mini adventure (for which I'll omit the details) to get the context reference on C side, and not have it go "stale" (when the Java GC would delete it), I passed that along to the initialization. That, in turn, allowed that (original issue) of the Java invocation of ContextUtils.getApplicationContext() to work!

m3u8 file not playing in Android Emulator

I am trying to playback a m3u8 file in Android Emulator.
http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
It's not able to playback the video but audio is heard.
I get the following error E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed.
I traced the calls and I see that the video decoder is not instantiated properly,
I find that OMXNodeInstance::enableGraphicBuffers is getting called and that calls,
OMX_ERRORTYPE err = OMX_GetExtensionIndex(...,const_cast<OMX_STRING>("OMX.google.android.index.enableAndroidNativeBuffers"),...);
which is then calling OMX_ERRORTYPE SoftOMXComponent::getExtensionIndex,
but there is no implementation for this function.
It just returns UndefinedError (code below)
OMX_ERRORTYPE SoftOMXComponent::getExtensionIndex(const char *name, OMX_INDEXTYPE *index)
{
return OMX_ErrorUndefined;
}
Can somebody please help me to overcome this GetExtentionIndex failure.
Log Below
/ChromiumHTTPDataSource( 39): connect to http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8 #0
V/NuPlayer( 39): scanning sources haveAudio=0, haveVideo=0
V/NuPlayer( 39): in instantiateDecoder at 693 audio = 0
V/NuPlayer( 39): in instantiateDecoder at 693 audio = 1
I/ESQueue ( 39): found AAC codec config (22050 Hz, 1 channels)
I/avc_utils( 39): found AVC codec config (192 x 144, Baseline-profile level 1.1)
V/MediaPlayer( 583): in getCurrentPosition at : 425
V/MediaPlayerService( 39): getCurrentPosition
V/MediaPlayerService( 39): [1] getCurrentPosition = 0
V/NuPlayer( 39): scanning sources haveAudio=0, haveVideo=0
V/NuPlayer( 39): in instantiateDecoder at 701 mime = video/avc
V/ACodec ( 39): Now uninitialized
V/ACodec ( 39): Now uninitialized
V/ACodec ( 39): onAllocateComponent
I/MediaPlayerService( 39): MediaPlayerService::getOMX()
V/SoftOMXPlugin( 39): makeComponentInstance 'OMX.google.h264.decoder'
V/SoftOMXPlugin( 39): makeComponentInstance at 106
V/ACodec ( 39): onAllocateComponent
I/MediaPlayerService( 39): MediaPlayerService::getOMX()
V/SoftOMXPlugin( 39): makeComponentInstance at 128
V/SoftOMXPlugin( 39): makeComponentInstance 'OMX.google.aac.decoder'
V/SoftOMXPlugin( 39): makeComponentInstance at 106
V/SoftOMXPlugin( 39): makeComponentInstance at 128
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded
V/ACodec ( 39): onConfigureComponent
V/ACodec ( 39): configureCodec at 870
V/ACodec ( 39): setupVideoDecoder at 1400
V/ACodec ( 39): setupVideoDecoder at 1402 mime = video/avc
V/ACodec ( 39): setupVideoDecoder at 1406
V/ACodec ( 39): setupVideoDecoder at 1414
V/ACodec ( 39): setupVideoDecoder at 1421
V/ACodec ( 39): setupVideoDecoder at 1429
V/ACodec ( 39): setupVideoDecoder at 1437
V/ACodec ( 39): initNativeWindow at 1962
V/ACodec ( 39): initNativeWindow at 1967
E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
V/ACodec ( 39): onStart
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded->Idle
Try to run it in real device, as I know emulators with some specific sdk's(like 3.1) crash playing m3u8 file. And if didn't resolve the issue maybe you can use some 3rd paty plugins like Vitamio http://vitamio.org/
This is a very interesting question. From your logs, I would like to quote this portion
E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
These 2 error messages are received during initNativeWindow call of the ACodec as part of it's transition from LOADED to IDLE state. From an OMX perspective, as part of the LOADED to IDLE transition, ACodec::LoadedState::onConfigureComponent is invoked. As part of this function, initNativeWindow is invoked.
In initNativeWindow, there are two distinct conditions. The first case is when the user has provided a nativeWindow or rather a Surface or SurfaceTexture to the codec to write it's output into. The other case is when the user hasn't provided a Surface to the MediaPlayer engine.
V/ACodec ( 39): onStart
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded->Idle
From these logs, it can be observed that the return code of initNativeWindow is ok which is only possible if the control branched to the case where mNativeNativeWindow is NULL as observed here. The return code for the false case is not caught by the ACodec which means that the component transitioned to IDLE state successfully.
In a nutshell, the issue is mainly arising due to a Surface not being provided to the MediaPlayer.
Some Suggestions:
Since you are employing NuPlayer, I would recommend you to check if NuPlayer::setVideoSurfaceTexture is called and whether a non-NULL object is passed from NuPlayer to downstream components.
From a MediaPlayer perspective, you should set a surface as part of the setSurface call.
In general, you need to provide a sink for the video decoder chain.
E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
the call to OMX_GetExtensionIndex lands into SoftOMXComponent(here) which is just a stubbed function and always returns OMX_ErrorUndefined which leads to failing of enableGraphicBuffers

native_window_set_buffers_geometry failed

I am trying to develop a surveillance application in OMAP 4460(Blaze Tablet-in ICS) acting as client device rendering the surveillance feed from a remote source. To begin with, surveillance feed is streamed remotely from the camera and port forwarded as RTP packets which are received and rendered in OMAP 4460 through a customized RTP stack. While rendering, I am getting the following error from the decoder, saying that "Surface Texture has been abandoned and native_window _set_buffers_geometry failed", more frequently.
Following is the log captured:
E/AwesomePlayer( 131): AwesomePlayer::onPrepareAsyncEvent-------- err = 0
E/AwesomePlayer( 131): AwesomePlayer::onPrepareAsyncEvent-------- OK = -430191887
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] AVC profile = 66 (Baseline), level = 31
E/OMXCodec( 131): set buffer size variable to : 307200
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 640 x 480
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 640 x 480 # (0, 0)
E/SurfaceTexture( 128): [SurfaceView] setCrop: SurfaceTexture has been abandoned!
E/SurfaceTextureClient( 131): ISurfaceTexture::setCrop(...) returned No such device
E/SurfaceTexture( 128): [SurfaceView] setLayout: SurfaceTexture has been abandoned!
E/SurfaceTexture( 128): [SurfaceView] setCrop: SurfaceTexture has been abandoned!
E/SurfaceTextureClient( 131): ISurfaceTexture::setCrop(...) returned No such device
E/OMXCodec( 131): native_window_set_buffers_geometry failed: No such device (19)
E/ion ( 131): ioctl -1073460991 failed with code -1: Bad file number
E/ion ( 131): ioctl -1073460991 failed with code -1: Bad file number
D/DOMX ( 131): hardware/ti/domx/domx/omx_proxy_common/src/omx_proxy_common.c:2208 PROXY_ComponentDeInit()
D/DOMX ( 131): ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001011 - Error returned from OMX API in ducati
D/DOMX ( 131): hardware/ti/domx/omx_core/src/OMX_Core.c:396 OMX_FreeHandle()
D/DOMX ( 131): ERROR: Error From ComponentDeInit..
D/StackInterface( 131): AwesomePlayer::reset_l called ++
SDP of the camera:
v=0
o=StreamingServer 3331435948 1116907222000 IN IP4 192.168.1.102
s=h264.mp4
c=IN IP4 239.0.0.00;/1
t=0 0
a=control:*
m=video 0 RTP/AVP 96
a=control:trackID=0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0KAH9oCgPSbgIEAmBAAfQAAEZQve+Eg,aM48gA==
m=application 0 RTP/AVP 107
a=control:trackID=2
a=rtpmap:107 vnd.onvif.metadata/90000
I have been trying to fix this issue for sometime now, and could not able to find out the problem yet.
Kindly, reveal how to proceed further on the issue.
Regards,
Manoj
My English is not good.
Check SurfaceTexture pointer.
If you define sp<.....> in function, sp<.....> is abandoned with end of function.

Can't play mp4 video in my Android app

I very want to play mp4 video in my android app. I even wrote a bit of code for it:
String sourceUrl = "http://tvstream.cn.ru/storage/1kanal/20120530/"
+ "1kanal-20120530-01-14-00-20120530-03-16-00.mp4";
final VideoView videoView = (VideoView) findViewById(R.id.videoView);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
final MediaController mediaController = new MediaController(this);
mediaController.setMediaPlayer(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(sourceUrl));
videoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
videoView.requestFocus();
videoView.start();
mediaController.show();
}
});
But nothing works :( When I launch my app in emulator (Android 2.3.3) I've got weird stacktrace with some common error codes:
After few hours off googling and experiments I decided to try to launch my app on real device and watch logcat:
D/test.tv.activity.PlayerActivity( 3428): Player source: http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 320x430
I/Launcher( 260): onWindowFocusChanged(false)
D/Launcher( 260): setWallpaperDimension() called
D/Launcher( 260): USE_NON_SCROLLABLE_IMAGE_WALLPAPER is true
I/ActivityManager( 163): Start proc org.reactivephone for broadcast org.reactivephone/ru.yandex.common.clid.ClidBroadcastReceiver: pid=3448 uid=10073 gids={1015, 3003}
I/ActivityManager( 163): No longer want com.sec.android.provider.badge (pid 2310): hidden #16
I/MediaPlayer( 3428): uri is:http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
I/MediaPlayer( 3428): path is null
D/MediaPlayer( 3428): Couldn't open file on client side, trying server side
D/Launcher( 260): It's image wallpaper. suggestDesiredDimensions(-1,-1)
I/ActivityManager( 163): Displayed test.tv/.activity.PlayerActivity: +943ms
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 320x430
W/dalvikvm( 3406): threadid=5: spin on suspend #1 threadid=22 (pcf=0)
W/dalvikvm( 3406): threadid=5: spin on suspend resolved in 1154 msec
W/SearchableInfo( 163): Invalid searchable metadata for org.reactivephone/.ui.RegionForm: Search label must be a resource reference.
I/ActivityManager( 163): Start proc com.google.android.googlequicksearchbox for broadcast com.google.android.googlequicksearchbox/.SourceUpdateReceiver: pid=3457 uid=10027 gids={3003}
I/WindowOrientationListener( 163): orientation 295.6932 gives new rotation = 2
I/OrientationDebug( 163): [pwm] in MyOrientationListener.onOrientationChanged() rotation=3 mFancyRotationAnimation=0 now call mWindowManager.setRotation()
I/OrientationDebug( 163): [wms] in setRotation() rotation=3 alwaysSendConfiguration=false animFlags=0
I/OrientationDebug( 163): [wms] in setRotation() now call setRotationUnchecked()
I/WindowManager( 163): Setting rotation to 3, animFlags=0
I/ActivityManager( 163): Config changed: { scale=1.0 imsi=250/1 loc=ru_RU touch=3 keys=1/1/2 nav=1/1 orien=2 layout=18 uiMode=17 seq=7}
D/PhoneApp( 241): updateProximitySensorMode: lock already released.
I/ActivityThread( 3457): Pub com.google.android.googlequicksearchbox.shortcuts: com.google.android.googlequicksearchbox.WebHistoryProvider
I/ActivityThread( 3457): Pub com.google.android.googlequicksearchbox.google: com.google.android.googlequicksearchbox.google.GoogleSuggestionProvider
I/ActivityManager( 163): No longer want com.sec.android.widgetapp.clockweather.clockwidget (pid 1214): hidden #16
D/Finsky ( 3406): [1] 2.run: Loaded library for account: [Y091GklnFtI4Ab1gmLOw-nJkJXQ]
D/Finsky ( 3406): [1] 2.run: Finished loading 1 libraries.
W/dalvikvm( 3406): VFY: unable to resolve instance field 78
D/DfeApi ( 3406): [1] DfeApiContext.getSmallestScreenWidthDp: smallestScreenWidthDp does not exist, using pre-ics hack.
E/QCvdec ( 95): Setparameter: unknown param 2130706451
W/TimedEventQueue( 95): Event 3 was not found in the queue, already cancelled?
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
W/QCvdec ( 95): ======================================================================
W/QCvdec ( 95): Open Max Statistics
W/QCvdec ( 95): ======================================================================
W/QCvdec ( 95): empty this buffer rate = NaN
W/QCvdec ( 95): empty this buffer total time = 0
W/QCvdec ( 95): empty this buffer count = 0
W/QCvdec ( 95): ======================================================================
D/test.tv.activity.PlayerActivity( 3428): Player source: http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 480x270
I/MediaPlayer( 3428): uri is:http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
I/MediaPlayer( 3428): path is null
D/MediaPlayer( 3428): Couldn't open file on client side, trying server side
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 480x270
D/WifiService( 163): [mPersistState] : On
D/BatteryService( 163): update start
D/BatteryService( 163): update start
D/BatteryService( 163): update start
E/QCvdec ( 95): Setparameter: unknown param 2130706451
I/VideoView( 3428): start()
D/WifiService( 163): [mPersistState] : On
D/WifiService( 163): [mPersistState] : On
D/WifiWatchdogService( 163): (android.server.ServerThread) wntk (1c:af:f7:2e:7f:c8) does not require the watchdog
E/QCvdec ( 95): Unsupported profile, level, or widht, height
E/QCvdec ( 95): Unsupported clip
E/QCvdec ( 95): Unsupported profile, level, or widht, height
E/QCvdec ( 95): Unsupported clip
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
E/QCvdec ( 95): Empty this buffer in Invalid State
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/OMXCodec( 95): read : mState[9] is wrong...
E/MediaPlayer( 3428): error (1, -2147483648)
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 335x270
I/VideoView( 3428): start()
E/MediaPlayer( 3428): start called in state 0
E/MediaPlayer( 3428): error (-38, 0)
E/MediaPlayer( 3428): Error (1,-2147483648)
D/VideoView( 3428): Error: 1,-2147483648
E/MediaPlayer( 3428): Error (-38,0)
D/VideoView( 3428): Error: -38,0
D/PowerManagerService( 163): reactivateScreenLocksLocked mProxIgnoredBecauseScreenTurnedOff=false
I/PowerManagerService( 163): Ulight 1->3|0
W/InputManagerService( 163): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy#40873ab8
I/PowerManagerService( 163): Light Animator Finished curIntValue=141
D/Finsky ( 3406): [1] 5.onFinished: Installation state replication succeeded.
D/BatteryService( 163): update start
D/BatteryService( 163): update start
D/BatteryService( 163): update start
I try to find something about "OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)", but didn't find nothing interesting. About "Couldn't open file on client side, trying server side" problem stackoverflow has many answers, but no one helped.
When I launch this app on ICS (in emulator) I've got similar errors:
06-01 10:22:14.674: I/NuCachedSource2(37): ERROR_END_OF_STREAM
06-01 10:22:15.375: I/OMXCodec(37): [OMX.google.h264.decoder] AVC profile = 100 (High), level = 30
06-01 10:22:15.384: I/OMXCodec(37): [OMX.google.h264.decoder] video dimensions are 320 x 240
06-01 10:22:15.384: I/OMXCodec(37): [OMX.google.h264.decoder] Crop rect is 320 x 240 # (0, 0)
06-01 10:22:16.253: W/NetworkManagementSocketTagger(89): setKernelCountSet(10013, 0) failed with errno -2
06-01 10:22:16.374: I/Launcher(553): setLoadOnResume
06-01 10:22:16.584: D/MediaPlayer(602): getMetadata
06-01 10:22:16.614: I/NuCachedSource2(37): new range: offset= 0
06-01 10:22:16.694: I/ChromiumHTTPDataSource(37): connect to http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4 #0
06-01 10:22:16.834: E/SoftAVC(37): Decoder failed: -2
06-01 10:22:16.844: E/OMXCodec(37): [OMX.google.h264.decoder] ERROR(0x80001001, -1007)
06-01 10:22:16.884: D/AudioSink(37): bufferCount (4) is too small and increased to 12
As I know, Android supports playback of video decoded with h264 (http://developer.android.com/guide/appendix/media-formats.html). So, can anyone tell me what I do wrong.
Probably your file is using an unsupported profile, notice that official media formats page only lists Baseline Profile as supported for H.264 AVC.
Try transcoding the video specifying Baseline Profile as suggested in this stackoverflow question, i.e. if your container is MP4 run:
ffmpeg -i yourfile.mp4 -c:v libx264 -profile:v baseline -level 1 yourfile_BaselineProfile.mp4
If this works it's not a issue in your code, you just have to use supported formats.
Try this
File clip=new File(Environment.getExternalStorageDirectory(),
"test.mp4");
if (clip.exists()) {
video=(VideoView)findViewById(R.id.video);
video.setVideoPath(clip.getAbsolutePath());
ctlr=new MediaController(this);
ctlr.setMediaPlayer(video);
video.setMediaController(ctlr);
video.requestFocus();
video.start();
VideoView classes does not allow playing MP4 file format videos. Please go through this link for Android Media Formats. Try checking your video with Daroon Player

Bluetooth connection lost issue

This is not really something I'm developing, more like something I'm trying to debug. For some reason my HTC Desire HD keeps disconnecting from my car's bluetooth. It worked fine on phone's original rom, then I upgraded to Gingerbread (HTC rom) and it started to disconnect. I'm not sure what happened next (possibly I've installed something? mb the car's computer was reset as I had a service?) but it actually started to work after a few months and all was good until I upgraded again to 2.3.5 (HTC official upgrade). The phone connects to my car without any issues, then looses the connection within a minute and will not reconnect until the phone or the car's restarted. Here's some log data that I was able to collect in case someone might be familiar with how the bluetooth works on android:
I//system/bin/btld(23506): ##### USERIAL_Ioctl: BT_Sleep, USERIAL_IO_BT_WAKE_DEASSERT ####
W/ (23507): bta_dm_pm_timer_cback 0x255fa4
W/ (23507): dm_pm_timer expires 0
W/ (23507): proc dm_pm_timer expires
I//system/bin/btld(23506): ##### USERIAL_Ioctl: BT_Wake, USERIAL_IO_BT_WAKE_ASSERT ####
I/PTIM (23507): Call GKI_add_to_timer_list in ptim_start_timer
W/ (23507): start dm_pm_timer:0, 5000
D/dalvikvm(23586): GC_CONCURRENT freed 381K, 48% free 3295K/6279K, external 0K/0K, paused 2ms+3ms
I/keystore( 1264): uid: 1000 action: e -> 7 state: 1 -> 1 retry: 4
I/BtAtPhonebook( 1631): Refreshed phonebook ME with 255 results
I/keystore( 1264): uid: 1000 action: e -> 7 state: 1 -> 1 retry: 4
I/BtAtPhonebook( 1631): Refreshed phonebook ME with 255 results
D/dalvikvm(15887): GC_EXPLICIT freed 124K, 44% free 4129K/7303K, external 0K/512K, paused 79ms
I//system/bin/btld(23506): ##### USERIAL_Ioctl: BT_Sleep, USERIAL_IO_BT_WAKE_DEASSERT ####
W/ (23507): stop dm_pm_timer:0
W/HeadsetBase.cpp( 1631): RFCOMM poll() returned success (1), but with an unexpected revents bitmask: 0x11
I/HeadsetBase( 1631): headset read error 5
I//system/bin/btld(23506): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DISCONNECT_IND (AG) 8 pbytes (hdl 18)
I//system/bin/btld(23506): BTL_IF_DisconnectDatapath: Disconnect datapath on handle 21
I//system/bin/btld(23506): wrp_setup_rxflow: wrp_setup_rxflow : 0 (fd 21)
I//system/bin/btld(23506): wsactive_del: delete wsock 21 from active list [212ef8]
I//system/bin/btld(23506): wrp_close_data: wrp_close 21 [brcm.bt.btlif]
I//system/bin/btld(23506): wsactive_del: delete wsock 21 from active list [212ef8]
I/BTL_IFC ( 1631): btl_ifc_ctrl_rx: [BTL_IFC CTRL] recv BTLIF_DISCONNECT_IND (AG) 10 pbytes (hdl 92)
D/BLZ_WRAPPER( 1631): blz_ctrl_msg: [blz ctrl] received message [BTLIF_DISCONNECT_IND]
D/BLZ_WRAPPER( 1631): blz_ctrl_msg: Channel disconnected remotely, rf_ch 65535
I/BTL_IFC_WRP( 1631): wrp_find_wsock_by_rfhdl: wrp_find_wsock_by_rfhdl : no entry found, lst 0, rfchan 65535
I/BLZ_WRAPPER( 1631): btl_if_close: btl_if_close (105)
D/BLZ_WRAPPER( 1631): btl_if_close: [btl_if_close] : (105:100), disc_pending 0, asnc 0, selct 0, flags 2
I/BTL_IFC ( 1631): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (AG) 8 pbytes (hdl 92)
W/ (23507): Could not find conn_info for chdl=0x3
D/BluetoothHeadsetService( 1631): Device: 00:13:A9:A1:19:1E Headset state 2 -> 0, result = 0
W/ (23507): BTA_DM_LINK_DOWN_EVT::bdaddr 00:13:a9:a1:19:1e reason x15
D/DTUN_HCID4(23540): dtun_dm_sig_link_down()
I/DTUN_HCID4(23540): dtun_dm_sig_link_down device = 0xf750 handle = 256 reason = 0x15
I//system/bin/btld(23506): send_ctrl_msg: [BTL_IFS CTRL] send BTLIF_DTUN_SIGNAL_EVT (CTRL) 11 pbytes (hdl 17)
D/BTL_IFC_WRP( 1631): wrp_close_s_only: wrp_close_s_only [105] (105:100) [brcm.bt.btlif]
D/BTL_IFC_WRP( 1631): wrp_close_s_only: data socket closed
D/BTL_IFC_WRP( 1631): wsactive_del: delete wsock 105 from active list [ad3ca3c0]
I/DTUN_HCID4(23540): [embedded]LINK_DOWN name = UHP, address = 00:13:A9:A1:19:1E, reason = 0x15
D/BluetoothService( 1379): Device property changed:00:13:A9:A1:19:1E property:Connected
I/BluetoothHeadsetService( 1631): [embedded] HSP/HFP state : address: 00:13:A9:A1:19:1E name: UHP State:2->0
I/BTL_IFC ( 1631): send_ctrl_msg: [BTL_IFC CTRL] send BTLIF_DISCONNECT_REQ (SCO) 0 pbytes (hdl 102)
W/ (23507): Could not find conn_info with active SCO
I/BluetoothA2dpService( 1379): BluetoothHeadset disconnected, remove AV CONNECT_TO msg
I/StatusBarPolicy( 1577): updateBluetooth bt icon:true,HS:0,A2DP:false
D/AudioPolicyManagerBase( 1260): setDeviceConnectionState() device: 40, state 0, address 00:13:A9:A1:19:1E
I/AudioPolicyManagerBase( 1260): setOutputDevice() output 4 device 0 delayMs 0
I/AudioPolicyManagerBase( 1260): setOutputDevice() setting same device 0 or null device for output 4
I/BluetoothDeviceProfileState( 1379): Entering IncomingHandsfree state with: 6
I/BluetoothDeviceProfileState( 1379): Processing command:6
I/BluetoothDeviceProfileState( 1379): Entering ACL Connected state with: 102
I/NaviReceiver(23556): Got BluetoothHeadset.ACTION_STATE_CHANGED
I/NaviReceiver(23556): conn state = 0

Categories

Resources