jni调用AudioTrack播放ffmpeg解码后的数据 问题

问题描述

jni调用AudioTrack播放ffmpeg解码后的数据 问题


swr_ctx可以忽略,我先将解码后的一帧音频数据aFrame-data复制到arr中,arr的定义是char *arr;arr=malloc(sizeof(char)*minbuffer);

然后创建一个长度为dsize的jbyteArray数组,
再将arr中的数据复制到jarr中,
最后write,然后就出错了。。。

补充一下,是write出错,说明数据不对,可我不知道为什么会数据不对,
难道是我复制的不对吗?

解决方案

CallVoidMethod的第二个参数有错吧 这个ID

时间: 2024-10-29 05:27:44

jni调用AudioTrack播放ffmpeg解码后的数据 问题的相关文章

FFMPEG解码流程

FFMPEG解码流程:  1. 注册所有容器格式和CODEC: av_register_all()  2. 打开文件: av_open_input_file()  3. 从文件中提取流信息: av_find_stream_info()  4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO  5. 查找对应的解码器: avcodec_find_decoder()  6. 打开编解码器: avcodec_open()  7. 为解码帧分配内存: avcodec_alloc_frame

如何在Android 下用jni调用下面c代码进行g711编码?

问题描述 如何在Android 下用jni调用下面c代码进行g711编码? unsigned char encode(short pcm); short decode(unsigned char alaw); /** 个人理解 bitsize 应该为16, pBuffer(pcm数据) 两个char 合成一个 short ,长度自然就是原来的一半(nBufferSize/2), 通过编码后short类型的数据变为char类型,让后复制给pCodecBits/ int g711_encode(un

ios-iOS 播放视频的框架 能直接播放 被转成data数据后的视频吗,而不用写成视频文件去调用播放

问题描述 iOS 播放视频的框架 能直接播放 被转成data数据后的视频吗,而不用写成视频文件去调用播放 iOS 播放视频的框架 能直接播放 被转成data数据后的视频吗,而不用写成视频文件去调用播放 解决方案 写成视频文件是可以调用播放的,写成data也应该可以 解决方案二: 能不能播放跟有没有写成文件是没有关系的,主要是视频流的格式,视频格式是iOS能支持播放的就可以. 解决方案三: 你本来文件的格式是AVFoundation支持的吗? 解决方案四: 是可以的 (instancetype)i

C#使用VLC的libvlc.dll开发了个视频播放器,播放高清视频就会卡,请问怎么调用libvlc的硬件解码

问题描述 C#使用VLC的libvlc.dll开发了个视频播放器,播放高清视频就会卡,请问怎么调用libvlc的硬件解码 解决方案 解决方案二:VLC官方软甲的设置中有硬件解码选项,所以开源文档里应该也会有对应的源码!求教...

FFmpeg解码H264及swscale缩放详解

本文概要:         本文介绍著名开源音视频编解码库ffmpeg如何解码h264码流,比较详细阐述了其h264码流输入过程,解码原理,解码过程.同时,大部分应用环境下,以原始码流视频大小展示并不是最佳方式,因此,开发者不仅仅需要对视频流解码,并且需要缩放图像以展示于不同窗体下.         综上,本文除介绍ffmpeg解码h264,同时阐述如何使用swscale缩放视频流.                文章使用的开发环境Ubuntu12.04..交流邮箱:leoluopy@gmail

Mac OS下为Android Studio编译FFmpeg解码库的详细教程_Android

NDK部分 1.下载ndk这里就一笔带过了. 2.解压ndk不要解压,文件权限会出错.执行之,会自动解压,然后mv到想放的地方.我放到了"/usr/local/bin/android-ndk-r10d"(此目录之后用$NDK_DIR指代). 3.下载Ffmpeg我下的是2.5.3版本. 4.解压Ffmpeg解压Ffmpeg到$NDK_DIR/sources/ffmpeg-2.5.3. 5.修改Ffmpeg编译配置在ffmpeg-2.5.3目录下把configure文件中的这几行,目的是

java + ffmpeg 解码flv文件

问题描述 因课题需要,做一个flv的播放器,小弟新入手java,这方面不太了解.下载了一个jffmpeg的jar包.导入后是否可以直接调用接口来实现解码?有这方面经验的高手请帮帮忙!十分急!!有过java解码其他视频经验的也请多多指教啊!!! 解决方案 解决方案二:怎么没人回答?是没人做过,还是太简单了?希望高手指点一下,不要帖子沉了.!!解决方案三:Jffmpeg已死.还是用Metamorph吧,地址:解决方案四:引用2楼sciolist的回复: Jffmpeg已死.还是用Metamorph吧

ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)

源码下载地址: http://download.csdn.net/detail/liukang325/9489952 我用的ffmpeg版本为 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有些头文件和API找不到. 在Linux下解压后编译,Linux下编译很简单,我这里生成的动态库: ./configure –enable-shared make 就能找到各个so动态库文件. 移动位置后,记得手动链接 一下: ln -s libavcodec.so.55 libavcodec.so

android上 用ffmpeg解码rtp组播流

问题描述 android上 用ffmpeg解码rtp组播流 android上 用ffmpeg解码rtp组播流,avformat_find_stream_info这一步总是失败,错误信息是 Connection timed out,同样的代码linux下测试是没问题的,移植到android后就不行,这是为什么呢? 解决方案 Connection timed out 连接超时.看看网络处理是否正确!! 解决方案二: 权限,看看权限,打印一些日志.安卓上的各位权限都看看! 解决方案三: 我也遇到这个问