终极录音不能在android2.3上录音的问题

sepnic 2011-07-25 03:29:17
但Speech Recorder是可以的。终极录音的就不行,如下是log,请大家分析一下是什么问题,谢了!

D/ALSAModule( 1302): open called for devices 00040000 in mode 0...
I/ALSAModule( 1302): Initialized ALSA CAPTURE device default
D/AcousticsModule( 1302): Acoustics set_params stub called with 7.
I/MPEG4Writer( 1302): limits: 2147483647/0 bytes/us, bit rate: 12200 bps and the estimated moov size 3072 bytes
D/ALSAModule( 1302): route called for devices 00040000 in mode 0...
W/AudioFlinger( 1302): RecordThread: buffer overflow
I/MPEG4Writer( 1302): setStartTimestampUs: 180715
I/MPEG4Writer( 1302): Earliest track starting time: 180715
D/MediaMetadataRetrieverJNI( 2218): Create a rotation matrix: 32 degrees
E/MetadataRetrieverClient( 1302): failed to capture a video frame
E/MediaMetadataRetrieverJNI( 2218): captureFrame: videoFrame is a NULL pointer
W/MediaThumbRequest( 2218): Can't create mini thumbnail for /sdcard/UltimateVR/?¤????_M2011_0725_035111.3gp
I/MPEG4Writer( 1302): Received total/0-length (148/0) buffers and encoded 148 frames. - audio
I/MPEG4Writer( 1302): Audio track drift time: -295234 us
D/ALSAModule( 1302): route called for devices 00000000 in mode 0...
D/ALSAModule( 1302): open called for devices 00000000 in mode 0...
I/ALSAModule( 1302): Initialized ALSA CAPTURE device default
D/MPEG4Writer( 1302): 0 chunks are written in the last batch
D/AcousticsModule( 1302): Acoustics close stub called.
W/MediaRecorder( 2316): mediarecorder went away with unhandled events
D/SntpClient( 1559): request time failed: java.net.SocketException: Address family not supported by protocol
D/SntpClient( 2228): request time failed: java.net.SocketTimeoutException: Try again
I/AndroidSurface( 1302): create SurfaceComposerClient OK
I/FFPlayer( 1302): tm 5711142575 FFPlayer created, mEngine = 0x455c8, Count = 1
I/FFPlayer( 1302): tm 00202 engine_open url = fd://30,0,5028
I/FFPlayer( 1302): tm 05751 [inputDemux] thread (tid:2340) start, url = fd://30,0,5028
I/FFPlayer( 1302): tm 16805 [inputDemux] Stream Input format: mov,mp4,m4a,3gp,3g2,mj2, startTime: 0
I/FFPlayer( 1302): tm 00212 [inputDemux] Find Decoder: amrnb, id = 73728
W/FFPlayer( 1302): tm 08689 [inputDemux] Unsupported audio sample format 3
W/FFPlayer( 1302): tm 00392 [inputDemux] fd://30,0,5028: could not find any A/V streams
I/FFPlayer( 1302): tm 00563 FireEvent: Error, Ext1=1, Ext2=-1
E/MediaPlayer( 2316): error (1, -1)
E/MediaPlayer( 2316): Error (1,-1)
I/FFPlayer( 1302): tm 03374 [inputDemux] thread exited.

觉得红色的两句是问题所在,但是具体的就不知怎么回事了。
...全文
1640 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wantforget 2011-11-25
  • 打赏
  • 举报
回复
可我现在用的这个软件,还是没法播放呀,放在暴风里说:由于网络异常,升级无法进行
什么时可以用。 2.3的系统
sepnic 2011-07-26
  • 打赏
  • 举报
回复
终极录音是第三方软件,是比较普遍使用的一个软件,我们没有它的源码,只知道它是调用android通用的录音类MediaRecorder。
你说的是,但是我目前也不能确定2.3是否支持终极录音。
CyberLogix 2011-07-26
  • 打赏
  • 举报
回复
关键是你的终极录音软件支部支持2.3系统,2.3系统的音频系统有2.2有写差别
sepnic 2011-07-26
  • 打赏
  • 举报
回复
谢谢yiyaaixuexi。
buffer overflow没什么问题,在2.2平台也存在(听说要调整一下驱动的dma的size或android的buffer),但是不影响效果。
videoFrame is a NULL pointer是正常的吧,因为只是一个录音程序。

问题应该是这句:“0 chunks are written in the last batch”,写到文件的数据是0chunks。实在搞不懂是什么原因。
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
o(∩∩)o...哈哈,解决了就好啊。
sepnic 2011-07-26
  • 打赏
  • 举报
回复
问题解决了。根本不是录音的问题,而是解码的问题,将问题呈报给负责解码的人后,很快就解决了。

这次被kmplayer害死了。事情是这样的:终极录音后,不能播放,拿到电脑上用kmp和千千静听都不能播放。当时想“kmp支持的格式挺全的,不可能连这种流行的格式也不支持吧”,所以一厢情愿的认为是录音的问题,况且打印出来的东东看起来的确不正常。

搞啊搞啊,从昨天到现在,愣是找不出原因。上网看帖,guoying_兄弟说有可能是编码的问题。于是立马下了3gp格式标准,对比了一下录出来的问题。发现TMD格式完全正常啊!!!这时才终于想起可能是解码的问题了。于是找了个暴风影音,播放正常。到此,确认是解码问题了。

做事还是有点太主观了,这个习惯要改啊。总之多谢guoying_,没有他提示,我也不会找格式标准来对比录音文件。
wisdomad 2011-07-26
  • 打赏
  • 举报
回复
这年头,还是好人多啊~
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
客气啥,我只是不记得经理改的那个代码了,我刚入职1个礼拜,今年毕业的,很多都不懂,只是听他说是那部分问题,要不然我就把代码贴给你了。sorry for that.
sepnic 2011-07-26
  • 打赏
  • 举报
回复
好的。再次谢谢。我结账率可是100%的。
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
兄弟,问题解决了记得结贴啊
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
呵呵,需要修改的代码就几句话,相信你能解决的!你慢慢就变成全能的了
sepnic 2011-07-26
  • 打赏
  • 举报
回复
其实比较郁闷。
我就一个做底层驱动的,现在应用那边忙得抽不出人手,才叫我跟一下这个问题。
2.2上面我们都是用ffmpeg进行编码的,2.3就用android默认的stagefright了。如果是ffmpeg的话,我自信还可以应付,而且网络资源也多。
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
恩,2.2和2.3amr格式的录音,每帧所含的字节数不一样。你找到那部分代码修改下,我遇到这个问题是经理帮我改得。
sepnic 2011-07-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 guoying_ 的回复:]

我做过2.3的录音软件。当时遇到这样的问题,就是在将录音后的文件剪切后无法正常播放,而根源是2.3的音频文件编码和2.2的不一样,你把处理编码的部分修改一下应该就好了。
[/Quote]

谢谢!
是编码的问题吗?那有点麻烦了,我没有做过这个格式的编码工作。
guoying_ 2011-07-26
  • 打赏
  • 举报
回复
我做过2.3的录音软件。当时遇到这样的问题,就是在将录音后的文件剪切后无法正常播放,而根源是2.3的音频文件编码和2.2的不一样,你把处理编码的部分修改一下应该就好了。
sepnic 2011-07-26
  • 打赏
  • 举报
回复
failed to capture a video frame视频会不会影响audio同步,有些软件处理用视频帧来同步,无视频会不录音。
===========================================================================
在2.2上也有这一句打印,但可以录音。而且我就MediaRecorder这个类,对比了2.2和2.3,没有重大的变化。因此应该没有视频不会录音。

W/MediaThumbRequest( 2218): Can't create mini thumbnail for
===========================================================
好的。我检查一下这个东西,这个是音视频数据库管理方面的,按理来说不会影响录音文件的读写。

谢谢你了!
coding码场 2011-07-26
  • 打赏
  • 举报
回复
其实录音指令已经发下去了:
D/ALSAModule( 1302): open called for devices 00040000 in mode 0...
I/ALSAModule( 1302): Initialized ALSA CAPTURE device default
D/AcousticsModule( 1302): Acoustics set_params stub called with 7.
这个应该是问题所在:
W/MediaThumbRequest( 2218): Can't create mini thumbnail for /sdcard/UltimateVR/?¤????_M2011_0725_035111.3gp
为什么在SD卡上创建不了,failed to capture a video frame视频会不会影响audio同步,有些软件处理用视频帧来同步,无视频会不录音。
念茜 2011-07-25
  • 打赏
  • 举报
回复
我觉得这两句是关键
W/AudioFlinger( 1302): RecordThread: buffer overflow

E/MediaMetadataRetrieverJNI( 2218): captureFrame: videoFrame is a NULL pointer

先看看AudioFlinger的溢出,再看看MediaMetadataRetrieverJNI的空指针
sepnic 2011-07-25
  • 打赏
  • 举报
回复
顶一下啊。有无tx做过android2.3的?有没有遇到这种不能录音的情况啊
sepnic 2011-07-25
  • 打赏
  • 举报
回复
跟进去就是stagefright了,是比较恐怖的一个大家伙,请做过类似工作的大侠一定要援手相助啊!

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧