使用mediacodec出现的问题 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 81.82%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
android MediaCodec的自己碰到的问题
本文是个人在<em>使用</em>MediaCodec开发的时候碰到的一些<em>问题</em>,做下记录.... MediaCodec的基本用法,网上一大把,这里就不写了 1, 获取支持分辨率<em>问题</em> Camera.Parameters parameters = _camera.getParameters(); List previewSizes = parameters.getSupportedPreviewS
android开发 java.lang.IllegalStateException at android.media.MediaPlayer._prepare(Native Method)
最近遇到一个<em>问题</em>,我在service里面播放一段音乐时遇到了IllegalStateException异常,代码是这样的:protected void play() { System.out.println("play"); mpMediaPlayer = MediaPlayer.create(this, R.raw.dd); try {
Android 用MediaCodec实现视频硬解码
本文向你讲述如何用android标准的API (MediaCodec)实现视频的硬件编解码。例程将从摄像头采集视频开始,然后进行H264编码,再解码,然后显示。我将尽量讲得简短而清晰,不展示那些不相关的代码。但是,我不建议你读这篇文章,也不建议你开发这类应用,而应该转而开发一些戳鱼、打鸟、其乐融融的程序。好吧,下面的内容是写给那些执迷不悟的人的,看完之后也许你会同意我的说法:Android只是一个
基于android的MediaCodec进行音视频编解码的问题,路过的来看看
最近做关于基于android的<em>mediacodec</em>来对音视频的硬编码,并实时传输编码后的视频流,在android5.11版本上运行就闪退,结果是<em>出现</em>在mediaFormat.setInteger(Me
使用MediaCodec解码H264时报错
private boolean onFrame(byte[] buf, int offset, int length){ // 获取输入buffer index ByteBuffer[] inputBuffers = mMediaCodec.getInputBuffers(); //-1表示一直等待;0表示不等待;其他大于0的参数表示等待毫秒数 int inputBufferIndex; try{ inputBufferIndex = mMediaCodec.dequeueInputBuffer(-1); }catch (Exception e){ return false; } if (inputBufferIndex >= 0) { ByteBuffer inputBuffer = inputBuffers[inputBufferIndex]; //清空buffer inputBuffer.clear(); //put需要解码的数据 inputBuffer.put(buf, offset, length); //解码 mMediaCodec.queueInputBuffer(inputBufferIndex, 0, length, System.currentTimeMillis(), 0); } else { return false; } // 获取输出buffer index MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo(); int outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo, 100); //循环解码,直到数据全部解码完成 while (outputBufferIndex >= 0) { //true : 将解码的数据显示到surface上 mMediaCodec.releaseOutputBuffer(outputBufferIndex, true); outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo, 0); } return true; } ## Android4.4调用 MediaCodec.queueInputBuffer()时报错 04-30 11:11:38.028 113-113/? I/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 04-30 11:11:38.028 113-113/? I/DEBUG: Build fingerprint: 'rockchip/M1/M1:4.4.4/KTU84Q/rk3188.20170911.162732:user/test-keys' 04-30 11:11:38.028 113-113/? I/DEBUG: Revision: '0' 04-30 11:11:38.028 113-113/? I/DEBUG: pid: 3141, tid: 3191, name: CodecLooper >>> com.zao.edu <<< 04-30 11:11:38.028 113-113/? I/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 04-30 11:11:38.108 113-113/? I/DEBUG: r0 00000000 r1 00000c77 r2 00000006 r3 00000000 04-30 11:11:38.108 113-113/? I/DEBUG: r4 00000006 r5 00000000 r6 00000c77 r7 0000010c 04-30 11:11:38.108 113-113/? I/DEBUG: r8 00000001 r9 00319200 sl 00000000 fp 00000000 04-30 11:11:38.108 113-113/? I/DEBUG: ip 00000001 sp 71658748 lr 400f309d pc 40102048 cpsr 000f0010 04-30 11:11:38.108 113-113/? I/DEBUG: d0 203a64656c696166 d1 202b207465736666 04-30 11:11:38.108 113-113/? I/DEBUG: d2 61436d2c657a6973 d3 2029797469636170 04-30 11:11:38.108 113-113/? I/DEBUG: d4 646e756f662f7468 d5 42412f6e6f697461 04-30 11:11:38.108 113-113/? I/DEBUG: d6 70632e7265666675 d7 4548432038353a70 04-30 11:11:38.108 113-113/? I/DEBUG: d8 0000000000000000 d9 0000000000000000 04-30 11:11:38.108 113-113/? I/DEBUG: d10 0000000000000000 d11 0000000000000000 04-30 11:11:38.108 113-113/? I/DEBUG: d12 0000000000000000 d13 0000000000000000 04-30 11:11:38.108 113-113/? I/DEBUG: d14 0000000000000000 d15 0000000000000000 04-30 11:11:38.108 113-113/? I/DEBUG: d16 402e000000000000 d17 402f000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d18 0000000000000000 d19 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d20 3ff0000000000000 d21 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d22 0000000000000000 d23 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d24 402c000000000000 d25 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d26 3ff0000000000000 d27 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d28 402c000000000000 d29 0000000000000000 04-30 11:11:38.118 113-113/? I/DEBUG: d30 000000000000001f d31 0000000000000021 04-30 11:11:38.118 113-113/? I/DEBUG: scr 60000013 04-30 11:11:38.118 113-113/? I/DEBUG: backtrace: 04-30 11:11:38.118 113-113/? I/DEBUG: #00 pc 00022048 /system/lib/libc.so (tgkill+12) 04-30 11:11:38.118 113-113/? I/DEBUG: #01 pc 00013099 /system/lib/libc.so (pthread_kill+48) 04-30 11:11:38.118 113-113/? I/DEBUG: #02 pc 000132ad /system/lib/libc.so (raise+10) 04-30 11:11:38.118 113-113/? I/DEBUG: #03 pc 00011fe3 /system/lib/libc.so 04-30 11:11:38.118 113-113/? I/DEBUG: #04 pc 000218fc /system/lib/libc.so (abort+4) 04-30 11:11:38.118 113-113/? I/DEBUG: #05 pc 000014c3 /system/lib/liblog.so (__android_log_assert+86) 04-30 11:11:38.118 113-113/? I/DEBUG: #06 pc 00008a07 /system/lib/libstagefright_foundation.so (android::ABuffer::setRange(unsigned int, unsigned int)+138) 04-30 11:11:38.118 113-113/? I/DEBUG: #07 pc 000597ff /system/lib/libstagefright.so (android::ACodec::BaseState::onOMXFillBufferDone(void*, unsigned int, unsigned int, unsigned long, long long, void*, void*)+402) 04-30 11:11:38.118 113-113/? I/DEBUG: #08 pc 00059c4b /system/lib/libstagefright.so (android::ACodec::BaseState::onOMXMessage(android::sp const&)+610) 04-30 11:11:38.118 113-113/? I/DEBUG: #09 pc 0005a0ed /system/lib/libstagefright.so (android::ACodec::ExecutingState::onMessageReceived(android::sp const&)+536) 04-30 11:11:38.118 113-113/? I/DEBUG: #10 pc 00008c7f /system/lib/libstagefright_foundation.so (android::AHierarchicalStateMachine::onMessageReceived(android::sp const&)+82) 04-30 11:11:38.118 113-113/? I/DEBUG: #11 pc 0000981d /system/lib/libstagefright_foundation.so (android::ALooperRoster::deliverMessage(android::sp const&)+152) 04-30 11:11:38.118 113-113/? I/DEBUG: #12 pc 000091e7 /system/lib/libstagefright_foundation.so (android::ALooper::loop()+198) 04-30 11:11:38.118 113-113/? I/DEBUG: #13 pc 0000e9ed /system/lib/libutils.so (android::Thread::_threadLoop(void*)+104) 04-30 11:11:38.118 113-113/? I/DEBUG: #14 pc 0000e58f /system/lib/libutils.so 04-30 11:11:38.118 113-113/? I/DEBUG: #15 pc 0000d228 /system/lib/libc.so (__thread_entry+72) 04-30 11:11:38.118 113-113/? I/DEBUG: #16 pc 0000d3c0 /system/lib/libc.so (pthread_create+240) 04-30 11:11:38.118 113-113/? I/DEBUG: stack: 04-30 11:11:38.118 113-113/? I/DEBUG: 71658708 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 7165870c 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658710 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658714 000003ff 04-30 11:11:38.118 113-113/? I/DEBUG: 71658718 00319200 04-30 11:11:38.118 113-113/? I/DEBUG: 7165871c 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658720 00000001 04-30 11:11:38.118 113-113/? I/DEBUG: 71658724 00000001 04-30 11:11:38.118 113-113/? I/DEBUG: 71658728 00319200 04-30 11:11:38.118 113-113/? I/DEBUG: 7165872c 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658730 400890b1 /system/lib/liblog.so 04-30 11:11:38.118 113-113/? I/DEBUG: 71658734 4008a5f9 /system/lib/liblog.so 04-30 11:11:38.118 113-113/? I/DEBUG: 71658738 716587ac 04-30 11:11:38.118 113-113/? I/DEBUG: 7165873c 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658740 4012a1d8 /system/lib/libc.so 04-30 11:11:38.118 113-113/? I/DEBUG: 71658744 66d7c6c8 04-30 11:11:38.118 113-113/? I/DEBUG: #00 71658748 00000006 04-30 11:11:38.118 113-113/? I/DEBUG: 7165874c 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658750 00000c77 04-30 11:11:38.118 113-113/? I/DEBUG: 71658754 00000001 04-30 11:11:38.118 113-113/? I/DEBUG: 71658758 00000001 04-30 11:11:38.118 113-113/? I/DEBUG: 7165875c 400f309d /system/lib/libc.so (pthread_kill+52) 04-30 11:11:38.118 113-113/? I/DEBUG: #01 71658760 00000006 04-30 11:11:38.118 113-113/? I/DEBUG: 71658764 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 71658768 00000000 04-30 11:11:38.118 113-113/? I/DEBUG: 7165876c 400f32b1 /system/lib/libc.so (raise+14) 04-30 11:11:38.118 113-113/? I/DEBUG: #02 71658770 7165877c 04-30 11:11:38.118 113-113/? I/DEBUG: 71658774 400f1fe7 /system/lib/libc.so 04-30 11:11:38.118 113-113/? I/DEBUG: memory near r9: 04-30 11:11:38.118 113-113/? I/DEBUG: 003191e0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 003191f0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319200 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319210 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319220 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319230 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319240 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319250 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319260 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319270 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319280 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 00319290 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 003192a0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 003192b0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 003192c0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: 003192d0 ffffffff ffffffff ffffffff ffffffff 04-30 11:11:38.128 113-113/? I/DEBUG: memory near sp: 04-30 11:11:38.128 113-113/? I/DEBUG: 71658728 00319200 00000000 400890b1 4008a5f9 04-30 11:11:38.128 113-113/? I/DEBUG: 71658738 716587ac 00000000 4012a1d8 66d7c6c8 04-30 11:11:38.128 113-113/? I/DEBUG: 71658748 00000006 00000000 00000c77 00000001 04-30 11:11:38.128 113-113/? I/DEBUG: 71658758 00000001 400f309d 00000006 00000000 04-30 11:11:38.128 113-113/? I/DEBUG: 71658768 00000000 400f32b1 7165877c 400f1fe7 04-30 11:11:38.128 113-113/? I/DEBUG: 71658778 00004000 ffffffdf 2a2a2a2a 7165877c 04-30 11:11:38.128 113-113/? I/DEBUG: 71658788 00000001 b25da946 00000007 00000000 04-30 11:11:38.128 113-113/? I/DEBUG: 71658798 00319200 40101900 400890b1 400894c7 04-30 11:11:38.128 113-113/? I/DEBUG: 716587a8 71658bbc 6d617266 726f7765 612f736b 04-30 11:11:38.128 113-113/? I/DEBUG: 716587b8 656d2f76 2f616964 7362696c 65676174 04-30 11:11:38.128 113-113/? I/DEBUG: 716587c8 67697266 662f7468 646e756f 6f697461 04-30 11:11:38.128 113-113/? I/DEBUG: 716587d8 42412f6e 65666675 70632e72 38353a70 04-30 11:11:38.128 113-113/? I/DEBUG: 716587e8 45484320 4c5f4b43 6f202845 65736666 04-30 11:11:38.128 113-113/? I/DEBUG: 716587f8 202b2074 657a6973 61436d2c 69636170 04-30 11:11:38.128 113-113/? I/DEBUG: 71658808 20297974 6c696166 203a6465 38343233 04-30 11:11:38.128 113-113/? I/DEBUG: 71658818 20303436 202e7376 32383331 00303034 04-30 11:11:38.128 113-113/? I/DEBUG: code around pc: 04-30 11:11:38.128 113-113/? I/DEBUG: 40102028 e8bd00f0 e3700a01 912fff1e e2600000 04-30 11:11:38.128 113-113/? I/DEBUG: 40102038 ea006e3d e92d50f0 e3a07f43 ef000000 04-30 11:11:38.128 113-113/? I/DEBUG: 40102048 e8bd50f0 e3700a01 912fff1e e2600000 04-30 11:11:38.128 113-113/? I/DEBUG: 40102058 ea006e35 e92d50f0 e3a070ee ef000000 04-30 11:11:38.128 113-113/? I/DEBUG: 40102068 e8bd50f0 e3700a01 912fff1e e2600000 04-30 11:11:38.128 113-113/? I/DEBUG: 40102078 ea006e2d f200429a bf0080cf f000f891 04-30 11:11:38.128 113-113/? I/DEBUG: 40102088 4001e92d f040f891 d3532a10 0301ea80 04-30 11:11:38.128 113-113/? I/DEBUG: 40102098 0303f013 806ef000 d3262ae0 0300f1c0 04-30 11:11:38.128 113-113/? I/DEBUG: 401020a8 030ff013 eba2d021 ea5f0203 bf447cc3 04-30 11:11:38.128 113-113/? I/DEBUG: 401020b8 eb01f811 eb01f800 f811bf21 f811cb01 04-30 11:11:38.128 113-113/? I/DEBUG: 401020c8 f800eb01 f800cb01 ea5feb01 da037c43 04-30 11:11:38.128 113-113/? I/DEBUG: 401020d8 080df9a1 083df980 f921d303 f900070d 04-30 11:11:38.128 113-113/? I/DEBUG: 401020e8 f891071d f891f000 3a40f040 f891d30f 04-30 11:11:38.128 113-113/? I/DEBUG: 401020f8 f891f080 f921f0c0 f921020d f891420d 04-30 11:11:38.128 113-113/? I/DEBUG: 40102108 3a40f0c0 020df900 420df900 f102d2f3 04-30 11:11:38.128 113-113/? I/DEBUG: 40102118 3a200240 f921d305 3a20020d 020df900 04-30 11:11:38.128 113-113/? I/DEBUG: code around lr: 04-30 11:11:38.128 113-113/? I/DEBUG: 400f307c 447b4b13 42b3e010 6a1ed10e 44784811 04-30 11:11:38.128 113-113/? I/DEBUG: 400f308c ec84f7fb ea0ef00d 46224631 efd0f00e 04-30 11:11:38.128 113-113/? I/DEBUG: 400f309c d00a3001 e00b2400 2b00681b 480ad1eb 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30ac 44782403 ec72f7fb f001e002 6804fa23 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30bc fa20f001 46206005 bf00bd70 0003b326 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30cc 0003b31a 0003b312 0003b2ee bf7ef7ff 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30dc 4a3e4b3d e92d447b b08b43f0 4606589c 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30ec 6823460d 930946a1 fa04f001 8000f8d0 04-30 11:11:38.128 113-113/? I/DEBUG: 400f30fc d0482d00 f00f4628 280ffe91 d8444604 04-30 11:11:38.128 113-113/? I/DEBUG: 400f310c ffe4f7ff d1064286 4629200f e8d8f00d 04-30 11:11:38.128 113-113/? I/DEBUG: 400f311c d03c2800 482ee02e f7fb4478 482debb6 04-30 11:11:38.128 113-113/? I/DEBUG: 400f312c e0154478 d11342b0 482b6a06 f7fb4478 04-30 11:11:38.128 113-113/? I/DEBUG: 400f313c 4a2aec2e 46332120 a801447a f9b2f013 04-30 11:11:38.128 113-113/? I/DEBUG: 400f314c a8012101 fcccf01a 46061c42 e011d104 04-30 11:11:38.128 113-113/? I/DEBUG: 400f315c 28006800 e02cd1e6 46294630 f00d4622 04-30 11:11:38.128 113-113/? I/DEBUG: 400f316c 1c43e914 d11e4607 f9c4f001 29046801 --------- beginning of /dev/log/system 04-30 11:11:38.328 435-456/? I/BootReceiver: Copying /data/tombstones/tombstone_06 to DropBox (SYSTEM_TOMBSTONE) 04-30 11:11:38.328 435-3215/? W/ActivityManager: Force finishing activity com.zao.edu/.activitys.OneScreenActivity 04-30 11:11:38.348 118-1000/? E/OMXNodeInstance: !!! Observer died. Quickly, do something, ... anything... 04-30 11:11:38.368 435-463/? W/InputDispatcher: channel '41d843a8 com.zao.edu/com.zao.edu.activitys.HomeActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 04-30 11:11:38.368 435-463/? E/InputDispatcher: channel '41d843a8 com.zao.edu/com.zao.edu.activitys.HomeActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 04-30 11:11:38.368 435-463/? W/InputDispatcher: channel '41d8ffb0 (server)' ~ Consumer closed input channel or an error occurred. events=0x9 04-30 11:11:38.368 435-463/? E/InputDispatcher: channel '41d8ffb0 (server)' ~ Channel is unrecoverably broken and will be disposed! 04-30 11:11:38.368 435-463/? W/InputDispatcher: channel '41deafa0 com.zao.edu/com.zao.edu.activitys.OneScreenActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 04-30 11:11:38.368 435-463/? E/InputDispatcher: channel '41deafa0 com.zao.edu/com.zao.edu.activitys.OneScreenActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 04-30 11:11:38.368 116-116/? D/Zygote: Process 3141 terminated by signal (6)
android MediaCodec解析
简介 MediaCodec类可以获取底层媒体编码/解码库,是Android底层多媒体支持库的一部分(一般和MediaExtractor、MediaSync、MediaMuxer、MediaCrypto、MediaDrm、Image、Surface、AudioTrack搭配<em>使用</em>)。 宽泛的说,codec(编解码器)通过异步的方式对输入的数据进行处理,输出处理后的数据,过程中需要一系列的输入/
android MediaCodec h264解码问题
最近在做视频解码的项目,用到了android MediaCodec有解码功能,<em>出现</em>了下面的<em>问题</em>,求大牛指点一二。 以下内容为解码时<em>出现</em>的错误。 11-08 18:28:01.886: E/开始解码(20450): 开始解码 11-08 18:28:17.498: E/all length(20450): 2418 11-08 18:28:17.498: E/screencmd3(20450): 2398 11-08 18:28:17.498: E/tag(20450): 2398videobyte.length 11-08 18:28:17.499: E/Decode(20450): inputBufferIndex===0 11-08 18:28:17.500: E/Decode(20450): inputBufferIndex===9 11-08 18:28:17.501: E/Decode(20450): inputBufferIndex===8 11-08 18:28:17.502: E/Decode(20450): inputBufferIndex===7 11-08 18:28:17.502: E/Decode(20450): inputBufferIndex===6 11-08 18:28:17.506: E/ACodec(20450): [OMX.MTK.VIDEO.DECODER.AVC] ERROR(0x80001005) 11-08 18:28:17.506: E/MediaCodec(20450): Codec reported an error. (omx error 0x80001005, internalError -1103) 11-08 18:28:17.509: E/AndroidRuntime(20450): FATAL EXCEPTION: Thread-1056 11-08 18:28:17.509: E/AndroidRuntime(20450): java.lang.IllegalStateException 11-08 18:28:17.509: E/AndroidRuntime(20450): at android.media.MediaCodec.getBuffers(Native Method) 11-08 18:28:17.509: E/AndroidRuntime(20450): at android.media.MediaCodec.getInputBuffers(MediaCodec.java:472) 11-08 18:28:17.509: E/AndroidRuntime(20450): at com.aaa.bbb.VideoActivity.onFrame(VideoActivity.java:286) 11-08 18:28:17.509: E/AndroidRuntime(20450): at com.aaa.bbb.VideoActivity$PlayerThread.run(VideoActivity.java:240)
MediaCodec方法dequeueInputBuffer :IllegalStateException异常
异常打印: I/video_data: callback_videodecode : res:0, codecid:28, w:648,h:432 packet.length:1317 cod
使用MediaCodec将摄像头采集的视频编码为h264的问题
参考https://www.cnblogs.com/CoderTian/p/6224605.html案例时所遇到<em>问题</em>,记录一下: 错误日志 2019-09-11 15:18:59.791 6287-6329/com.hkst.testmuxer E/ACodec: [OMX.MTK.VIDEO.ENCODER.AVC] does not support color format 15 2019-0...
MTK平台H264编码profile_idc和level_idc的小问题
<em>问题</em>一:MTK平台H264编码相关: 第三方软件反馈<em>使用</em>我们终端h264编码level_idc和视频分辨率和h264规范不一样,不标准,所以测试了一下、确认一下<em>问题</em>,一查还真查出来了大<em>问题</em>。测试三款mtk平台的终端Android5.1、Android6.1系统都一样存在这个<em>问题</em>。就是无论录像多少分辨率它硬编码的level_idc用于是41,搞笑了,正常按照h264规范录制...
Decoder init failed: OMX.qcom.video.decoder.avc
<em>问题</em>描述 <em>使用</em>Exoplayer,在低端机型上播放视频时抛出异常;视频为<em>使用</em>高端机型自带录屏软件录制,全部参数开启到最大,视频时长6-8s,大小为16-18M,且无音轨。 抛出异常 Caused by: com.google.android.exoplayer2.<em>mediacodec</em>.MediaCodecRenderer$DecoderInitializationException: Decode...
Android h264硬件编码问题
我采用yasea1.2(https://github.com/begeekmyfriend/yasea)进行视频编码传输,在手机上可以进行视频硬件编码并且可以进行rtmp传输,但是移植到开发板上就不行了,开发板是android5.1版本,手机是android4.4版本,是不是和android系统版本有关还是和开发板上的硬件资源不支持有关,求帮助,在调用MediaCodec进行硬件编码的时候报错如下 10-25 07:52:27.533: W/AudioRecord(4442): dead IAudioRecord, creating a new one from obtainBuffer() 10-25 07:52:27.533: W/AudioSystem(4442): AudioFlinger server died! 10-25 07:52:27.533: I/ServiceManager(4442): Waiting for service media.audio_flinger... 10-25 07:52:27.533: W/AudioSystem(4442): AudioPolicyService server died! 10-25 07:52:27.533: W/CameraBase(4442): Camera service died! 10-25 07:52:27.533: E/ACodec(4442): OMX/mediaserver died, signalling error! 10-25 07:52:27.533: E/ACodec(4442): OMX/mediaserver died, signalling error! 10-25 07:52:27.533: W/CameraBase(4442): mediaserver's remote binder Camera object died 10-25 07:52:27.533: E/ACodec(4442): signalError(omxError 0x8000100d, internalError -32) 10-25 07:52:27.533: E/ACodec(4442): signalError(omxError 0x8000100d, internalError -32) 10-25 07:52:27.534: E/MediaCodec(4442): Codec reported err 0xffffffe0, actionCode 0, while in state 6 10-25 07:52:27.534: E/MediaCodec(4442): Codec reported err 0xffffffe0, actionCode 0, while in state 6
【stagefrightplayer】4 OMX Codec介绍
概述 OMX Codec是stagefrightplayer中负责解码的模块。 由于遵循openmax接口规范,因此结构稍微有点负责,这里就依照awesomeplayer中的调用顺序来介绍。 主要分如下几步: 1 mClient->connect 2 InitAudioDecoder & InitVideoDecoder 3 消息通信机制模型的介绍 4 解码过程介绍   先看
ACodec和OMXCodec的比较
要掌握的内容: 1. ACodec中omx组件的创建过程 2. buffer的操作 3. 和OMXCodec的区别 组件的创建基本上和OMXCodec的相同。 1. 在ACodec::ExecutingState::resume()中,有:    void ACodec::ExecutingState::resume() {        ....
Android mediacodec解码延迟
我Android用<em>mediacodec</em>做实时视频解码硬件编码的h264数据,延迟到1~2s 码率1000 帧率15 , 但是解码码率和帧率高的就没有事,有人遇到过这种情况吗,求大神解救。
MediaCodec 中文API文档
笔记 一、MediaCodec+ surfaceview 进行硬件解码时,一旦调用surfaceview.addCallback.surfaceDestroyed, MediaCodec(下面这句),就拿不到数据 int outputBufferIndex = mediaCodecDecoder.dequeueOutputBuffer(bufferInfo,500); 触发surface...
android 5.1版本使用MediaCodec出错
功能是利用MediaCodec和MediaMuxer把网络摄像头传输过来的视频实时的保存成mp4, 在安卓4.4上保存成功了。但是在5.1的机器上初始化MediaCodec<em>出现</em>以下错误 E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010 W/ACodec: do not know color format 0x7fa30c04 = 2141391876 W/ACodec: do not know color format 0x7f000789 = 2130708361 我初始化代码为 MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc",1280, 720); mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, m_colorType); mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000); mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15); mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5); try { mediaCodec = MediaCodec.createEncoderByType("video/avc"); } catch (IOException e) { e.printStackTrace(); } mediaCodec.configure(mediaFormat, null, null,MediaCodec.CONFIGURE_FLAG_ENCODE); 另外, m_colorType的值,4.4方法跑出来是19,5.1为21
在Android Native层直接调用MediaCodec接口的实现
因为工作需要,要在Native层直接调用MediaCodec接口。不<em>使用</em>Java层的MediaCodec.java,而是直接<em>使用</em>MediaCodec.cpp。     我们知道,Android上处理视频解码,一般地是<em>使用</em>Java层MediaCodec类开发应用,而MediaCodec.java通过JNI最终调用MediaCodec.cpp的接口。为方便视频流数据的传输和线程控制,提高解码效率,我
android: IllegalStateException at android.media.MediaPlayer._stop(Native Method)
在播放音乐播放器暂停的时候,通常需要调用stop方法,通常是如下操作 mMediaPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener(){ @Override publicvoidonCompletion(MediaPlayermp){ mMediaPlayer.release(...
mediaCodec 的使用遇到的问题
最近项目需要在android的项目进行音视频的硬编解码,所以<em>使用</em>mediaCodec。这个过程,首先需要对音视频的编解码有足够的理解。无论是音频、视频的编码、解码,MediaCodec都是有三个部分。原理是消费者生产者的处理信息的过程。1.MediaCodec初始化设置,主要设置MediaCodec 2.将数据放到MediaCodec的InputBuffer 3.将数据从MediaCodec的Out
MediaCodec基本原理及使用
MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMuxer、AudioTrack结合<em>使用</em>,能够编解码诸如H.264、H.265、AAC、3gp等常见的音视频格式。广义而言,MediaCodec的工作原理就是处理输入数据以产生输出数据。具体来说,MediaCodec在编解码的过程中<em>使用</em>了一组输入/输出缓存区来同步或异步处理数据:首先,客户端向获取到的编解码器输入缓存区写入要编解码的数据并将其提交
mediacodec
https://www.jianshu.com/p/e6c683d6dbbe   Android MediaCodec编解码详解及demo sheepm 2016.12.27 23:30* 字数 3138 阅读 23390评论 19喜欢 63赞赏 1 原文地址 Android MediaCodec stuff 这篇文章是关于 MediaCodec 这一系列类,它主要是用来编码和解...
Android 音视频开发(六): MediaCodec API 详解
在学习了Android 音视频的基本的相关知识,并整理了相关的API之后,我们应该对基本的音视频有一定的轮廓了。 下面开始接触一个Android音视频中相当重要的一个API: MediaCodec。通过这个API,我们能够做很多Android音视频方面的工作,下面是我们学习这个API的时候,主要的方向: 学习 MediaCodec API,完成音频 AAC 硬编、硬解 学习 MediaCodec...
调用MediaCodec.configure()报错
做一个录屏功能用到MediaCodec+VirtualDisplay 部分手机调用MediaCodec.configure()时报错 网上找到很多资料,以为是颜色格式<em>问题</em>,更换手机支持的格式也报错 后面发现是编码的分辨率不支持 把分辨率从1920X1080改为1080*720就好了 不知道换更多机型会怎样,尝试过获取最大支持分辨率也会报错。 ...
安卓mediacodec如何获取解码后的数据?
在mCodec.configure(mediaFormat, null, null, 0)中将Surface设置成null然后用mCodec.getOutputBuffers()就可以获得解码后的数据了
MediaCodec 编码解码踩坑记录
概述   在MediaCodec的生命周期内存在三种状态:Stopped, Executing or Released,其中   Stopped状态包含三种子状态:Uninitialized, Configured and Error   Executing状态包含三种子状态:Flushed, Running and End-of-Stream   由于MediaCodec在不同的数据处理模式下状...
华为meta7,android6.0,配置编码器组件异常
mediaCodec.configure(mediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); 抛出了异常 异常信息 07-23 11
E/ACodec: [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
这里记录下Android硬编解码的大坑    “E/ACodec: [OMX.qcom.video.decoder.avc] ERROR(0x80001009)” 产生的原因: 1:塞了错误的数据 2:入队Frame数据时用了flag(BUFFER_FLAG_CODEC_CONFIG),但是入队的数据中没带sps,pps。      或者相反,没用这个flag,数据中带了sps,pps。
Android原生编解码接口 MediaCodec 之——踩坑
关键帧 MediaCodec 有两种方式触发输出关键帧,一是由配置时设置的 KEY_FRAME_RATE和KEY_I_FRAME_INTERVAL参数自动触发,二是运行过程中通过 setParameters 手动触发输出关键帧。 自动触发输出关键帧 在MediaCodec硬编码中设置I(关键帧)时间间隔,在 api 中是这么设置的 mediaFormat.setInteger(MediaF...
快乐的采坑之旅——Failed to initialize OMX.qcom.video.encoder.avc, error 0xfffffff4
报错代码: 报错原因:MediaCodec的实例存在上限,且不同的设备上限数量不同,如果多次创建实例却没有主动释放相关资源就会报错 解决办法:在合适的时机处调用,我是在onDestroy里面调用的。 ...
mediacodec对4k分辨率视频进行h.264\h.265\vp8的编码和解码的问题
找到个demo程序:https://github.com/pingu342/android-app-<em>mediacodec</em>test 是对1920*1080 h.264进行编码和解码的。 原理是:app界
android MediaCodec编解码问题
两台手机,一台手机开热点,一台手机连接,然后互相进行视频通话,遇到了一个奇怪编解码<em>问题</em>,在本机上编码,再解码显示到surfaceview上是可以的,但是通过socket发送到另一台手机上接收解码就不行
Android下Mediacodec编解码问题
最近在学习Android中的硬编解码,写了一个小demo,主要实现了从预览取到帧数据然后编码成h264,然后把编码好的数据在解码显示在surfaceview上面,遇到了点<em>问题</em>,解码出来显示的颜色不对,
android中java.lang.IllegalStateException异常产生的原因及解决办法
11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid state: 0 11-09 13:33:56.080: I/MediaRecorder(19865): stop 11-09 13:33:56.080: E/MediaRecorder(19865): stop called in an invalid st
android surfaceview界面卡死
我的是surefaceview里的动画。当然是用线程处理的。之前的线程逻辑是完全没错的。项目跑了一个晚上都不会出错,后来因为需求,改了。加了很多的bitmap。但我都释放掉了。我看了log里,GC一直
android studio ndk 调试技巧
Android ndk开发,<em>出现</em>内存溢出或别的<em>问题</em>需要调试时,如何快速定位到源码位置,可以<em>使用</em>addr2line 和 ndk-stack 两个工具。在程序 内容主要分为一下几个部分:1.Library Symbols (共享库的符号) 2.Analyze Tools (可用到的分析工具) 3.CrashLog – Header 4.CrashLog – Backtrace(For most cr
Support Design库中的BottomSheetDialog组件使用
首先来看这个组件<em>使用</em>的经典案例,微信公众号文章操作功能显示: 首先要知道BottomSheetDialog有两种,第一种弹出后不影响主界面交互,第二种弹出后主界面变暗不能交互,这里分别进行<em>使用</em>。 1.首先是普通的BottomSheetDialog: (1)实现 <em>使用</em>方法是Behavier和CoordingLayout相结合。就像悬浮按钮和ToolBar等一样,这个组件要作为Co
android硬编码h264-MediaCodec
本人对android已无大爱,更新太快,就h264编码先后实现了 ffmpeg+x264软编  Mediarecoder提取,还没能稳定的又出了MediaCodec,更新太快。我还是研究网络吧。既然瞅了几眼,就发出来个测试版本吧。android编码h264, 用udp发送到vlc播放测试。代码上传至:http://download.csdn.net/detail/liuhongxiangm/677
关于IllegalStateException!!!
在做分页处理的时候,遇到一个奇怪的<em>问题</em>: --------------- 我的jsp页面 --------------- ...... // 略去了对表单输入内容的判断部分,保留了提交代码 <Scri
安卓开发 java.lang.IllegalStateException isPlaying() 解决方案
安卓开发,友盟日志 抛出异常 MediaPlayer : java.lang.IllegalStateException at android.media.MediaPlayer.isPlaying(Native Method):解决方案待续:错误重现,不是百分百的: if (mediaPlayer.isPlaying() && skbProgress.isPressed() == false
Android 硬解码MediaCodec配合SurfaceView的踏坑之旅
一 前言最近在看一些Android硬解码的内容,顺便写了一个硬解码demo,简直就是踏坑之旅。<em>使用</em>Android自带的MediaCodec会有很多<em>问题</em>,动不动就卡死甚至crash。废话少说直接上代码,最后会将踩过的坑列觉出来并给出fix的办法二 demo1 初始化 首先 <em>使用</em>MediaCodec的静态方法创建一个解码器MediaCodec,记住是解码器,后面的mMimeType的参数就是解码视
Android MediaCodec类中dequeueInputBuffer和queueInputBuffer作用
queueInputBuffer和dequeueInputBuffer是一对方法,两个要在一起<em>使用</em>哦。首先,这一对函数的应用场合是对输入的数据流进行编码或者解码处理的时候,你会通过各种方法获得一个ByteBuffer的数组,这些数据就是准备处理的数据。你要通过自己的方法找到你要处理的部分,然后调用dequeueInputBuffer方法提取出要处理的部分(也就是一个ByteBuffer数据流),把
[RK3288][Android6.0] MediaCodec的configure配置过程小结
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 MediaCodec的参数设置都是存在MediaFormat结构体中,然后通过configure()来设置 MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/avc", width, height); med
Android视频编码的坑
视频开发是一个核心方向,那Camera开发一直是Android的一个核心,笔者做过Camera HAL,也做过Camera App, 同时也开发过Camera 滤镜,这个过程中也遇到和解决过很多棘手的<em>问题</em>,也一直想总结一篇,看到这篇后感觉总结的得非常不错,分享出来给大家,希望对大家有用。如果后续有机会我会补充更多内容, 比如文中YUV处理通过汇编来提高性能,其实通过OpenGl性能更好 ...
android 使用MediaCodec 编解码总结(最全)
http://blog.csdn.net/gh_home/article/details/52143102   android <em>使用</em>MediaCodec 编解码总结 标签: android编码异步解码硬件 2016-08-07 16:32 1906人阅读 评论(4) 收藏 举报  分类: Android(16)  版权声明:本文
Android之MediaCodec使用经验分享
Android之MediaCodec<em>使用</em>经验分享参考学习资料: http://www.cnblogs.com/Xiegg/p/3428529.html MediaCodec文档翻译&&一些FAQ和例子MediaCodec codec = MediaCodec.createDecoderByType(type); codec.configure(format, ...); codec.star
android ACodec MediaCodec NuPlayer flow
MediaCodec/ACodec流程i. 初始化(从java层开始):1、 java层中调用MediaCodec.createEncoder/DecoderByType(…)或MediaCodec.createByCodecName(…)创建编码器或者解码器2、 根据不同的参数new MediaCodec,然后其中会调用native_setup(…)3、 Native层android_media...
Android中使用MediaCodec视频编码异步实现
Android中<em>使用</em>MediaCodec进行视频编解码同步异步实现简单的介绍一下MediaCodec:本文主要讲述的是博主自己在用MediaCodec进行编解码过程中分别用同步和异步两种方式实现了硬编解码的过程,因为之前自己在用异步实现的过程中经常会<em>出现</em>解码黑屏的情况,百度和博客上也没有相关的实例,找到的只有一个示例代码,并没有提供什么帮助。所以写了代码去实现,Mediacodec的简单<em>使用</em>我先介绍
android使用MediaCodec实现异步视频编解码
android<em>使用</em>MediaCodec实现异步视频编解码 最近在做屏幕投影的项目中需要对H.264的视频流做解码播放显示,项目基于Android 7.0的系统,虽然android系统已经提供了一套以MediaCodec为核心的硬解码实现方案。但是在实际运用过程中,遇到许多<em>问题</em>,在这里进行一个总结,方便自己以后查阅,主要涉及以下内容: TextureView与SurfaceView Media...
Android Studio查看包依赖关系+删除冲突框架版本(如glide)
最近遇到了一个<em>问题</em>,我引入了glide 3.7版本,在<em>使用</em>过程中却发现无法正常<em>使用</em>链式语法设置placeholder和error等,于是我打开项目.idealibiraries,发现目录下glide的版本是4.0,很明显,有别的框架依赖了4.0,那么我现在就需要找到这个框架。 1.<em>使用</em>Gradle View查看依赖树: 首先搜索Gradle View插件安装重启。然后View--
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、<em>问题</em>引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至<em>出现</em>做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活<em>使用</em>,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断<em>问题</em>SQL 判断SQL是否有<em>问题</em>时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的<em>问题</em>,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量<em>使用</em>ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个<em>问题</em>。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及<em>使用</em>navicat连接数据库,以后的示例基本是<em>使用</em>mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种<em>问题</em>:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个<em>问题</em>问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该<em>问题</em>下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
MySQL数据库总结
文章目录一、数据库简介二、MySQL数据类型(5.5版本)三、Sql语句(1)Sql语句简介(2)数据定义语言DDLcreate,alter,drop(3)数据操纵语言DMLupdate,insert,delete(4)数据控制语言DCLgrant,revoke(5)数据查询语言DQLselect(6)分组查询与分页查询group by,limit四、完整性约束(单表)五、多表查询六、MySQL数
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅<em>使用</em>20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
中年危机,35 岁定律,见鬼去吧!
中年危机,35 岁定律,相信你都听说过,每次触及还会让你感到丝丝焦虑,毕竟时间这把杀猪刀不会放过任何一个人。中年危机或 35 岁定律是客观存在的,你迟早都会遭遇的,那你是否有信心战胜它呢? 中年危机之所以让人害怕,一则是你没有把握打赢这场遭遇战,再则中年是一个输不起的阶段。古人云:知己知彼,百战不殆。恐惧,主要源自对敌人和自己的不了解,不知道敌人的优劣势,也不清楚自己的长短板,常常以己之所短攻彼...
程序设计的5个底层逻辑,决定你能走多快
阿里妹导读:肉眼看计算机是由CPU、内存、显示器这些硬件设备组成,但大部分人从事的是软件开发工作。计算机底层原理就是连通硬件和软件的桥梁,理解计算机底层原理才能在程序设计这条路上越走越快,越走越轻松。从操作系统层面去理解高级编程语言的执行过程,会发现好多软件设计都是同一种套路,很多语言特性都依赖于底层机制,今天董鹏为你一一揭秘。 结合 CPU 理解一行 Java 代码是怎么执行的 根据冯·诺...
张小龙-年薪近3亿的微信之父,他是如何做到的?
张小龙生于湖南邵东魏家桥镇, 家庭主要特点:穷。 不仅自己穷,亲戚也都很穷,可以说穷以类聚。爷爷做过铜匠,总的来说,标准的劳动阶级出身。 家有兄弟两人, 一个小龙,一个小虎。 小虎好动,与邻里打成一片, 小龙好静,喜好读书。 “文静的像个妹子。”张小龙的表哥如是说。 穷文富武,做个读书郎是个不错的选择。 87年至94年, 华中科技大学本硕连读。 本科就读电信系, 不喜欢上课
阿里靠什么武功秘籍渡过“双十一“的天量冲击
双十一大概会产生多大的数据量呢,可能大家没概念,举个例子央视拍了这么多年电视新闻节目,几十年下来他存了大概80P的数据。而今年双11一天,阿里要处理970P的数据,做为一个IT人,笔者认为今年”双十一“阿里最大的技术看点有有以下两个: 阿里的数据库,也就是刚刚拿下TPC冠军的OcceanBase,处理峰值也达到了骇人听闻的6100万次/秒, 阿里核心系统百分百上云了。 如果把信息系统比做一个武
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何<em>问题</em>,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
Zookeeper的基本命令大全
1、列出节点 ls path ls -s path //包含该节点的详细信息,如子节点总数等 2、查看节点状态 stat path cZxid = 0x14f //创建节点的ID ctime = Thu Nov 07 01:02:53 CST 2019 //节点的创建时间 mZxid = 0x14f //修改节点ID mtime = Thu Nov 07 01:02:53 CST 2019 ...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个<em>问题</em>。其实不止是“烦不烦”,还有很多读者问过我类似这样的<em>问题</em>。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年<em>使用</em>商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部<em>使用</em>阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、<em>使用</em> Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
MSSQL2005,MYSQL驱动包下载
MSSQL2005,MYSQL的驱动包.。。。。。。。。。。 相关下载链接:[url=//download.csdn.net/download/luckhanjie/2793939?utm_source=bbsseo]//download.csdn.net/download/luckhanjie/2793939?utm_source=bbsseo[/url]
ddwrt_1.1_Build_20120409_MINI.pppoe.bin下载
ddwrt_1.1_Build_20120409_MINI.pppoe.bin 相关下载链接:[url=//download.csdn.net/download/clac10000/5006411?utm_source=bbsseo]//download.csdn.net/download/clac10000/5006411?utm_source=bbsseo[/url]
ICA处理论文.rar下载
介绍了独立主分量分析的关键技术要点: 本论文的主要工作在于引入了一种新的特征提取方法----独立分量分析。独立分量分析的根本原理是通过分析多维观测数据间的高阶统计相关性,找出相互独立的隐含信息成分,完成分量间高阶冗余的去除及独立信源的提取。它在特征提取中的应用目前主要是对图像进行特征提取,在本文中我们尝试用独立分量分析方法对项目中的鼻咽癌病人的头发中微量元素含量水平数据进行了特征提取。具体工作如下: (1)对项目中的鼻咽癌病人头发微量元素含量水平数据进行了预处理及分析。 (2)详细阐述和分析了独立分量分析的理论和算法。 (3)用基于信息论的FastICA算法和Infomax算法对预处理后的数据 相关下载链接:[url=//download.csdn.net/download/zsw79923/742184?utm_source=bbsseo]//download.csdn.net/download/zsw79923/742184?utm_source=bbsseo[/url]
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
我们是很有底线的