当前位置: 首页 > news >正文

收到一张网站服务费怎么做凭证wordpress 自动采集

收到一张网站服务费怎么做凭证,wordpress 自动采集,wordpress qqoq,湛江公司做网站【关键字】 视频提取类Extractor、视频编解码、保存pcm文件 【写在前面】 在使用API6开发HarmonyOS应用时#xff0c;通常会开发一些音视频媒体功能#xff0c;这里介绍如何从视频中提取音频保存到pcm文件功能#xff0c;生成pcm音频文件后#xff0c;就可使用音频播放类… 【关键字】 视频提取类Extractor、视频编解码、保存pcm文件 【写在前面】 在使用API6开发HarmonyOS应用时通常会开发一些音视频媒体功能这里介绍如何从视频中提取音频保存到pcm文件功能生成pcm音频文件后就可使用音频播放类AudioRenderer进行播放了。这里主要介绍从视频提取音频并保存到pcm文件的开发步骤。 【开发步骤】 步骤1对视频格式的文件进行提取音频文件并通过解码器解码并监听获取到的buffer数据直接使用Extractor从视频中提取出来的音频数据不能直接作为类似pcm数据源进行播放需要使用解码器解码之后得到的原始数据才可AudioRenderer进行播放。新建VideoDecoder类在里面封装相关功能代码。使用Extractor从视频提取音频数据并使用解码器解码代码如下 // 可创建VideoDecoder类实现相关功能 private Format format;private Codec decoder;private Extractor extractor;public void createDecoder() {decoder Codec.createDecoder(); // 创建解码器extractor new Extractor(); // 创建Extractor解封装类boolean ret extractor.setSource(new Source(/data/data/com.harmonyospro.myapplication/vedio_audio_test.mp4)); // 设置数据源com.harmonyospro.myapplication为应用包名也可设置为网络视频数据源System.out.println(setSource ret ret);int trackCount extractor.getTotalStreams();//获取轨道for (int i 0; i trackCount; i) {format extractor.getStreamFormat(i);if (format.getStringValue(mime).contains(audio)) { // 视频videoaudio音频/*** tc.steps: step2.set codec format for decoder* tc.expected: step2.the return value is true*/ret decoder.setCodecFormat(format);System.out.println(setCodecFormat ret ret);ret extractor.specifyStream(i);System.out.println(specifyStream ret ret);System.out.println(format.toString() format.toString());System.out.println(format.getStringValue(mine) format.getStringValue(mime));System.out.println(format.getStringValue(width) format.getIntValue(width));System.out.println(format.getStringValue(height) format.getIntValue(height));break;}}decoder.registerCodecListener(listener);}Codec.ICodecListener listener new Codec.ICodecListener() {Overridepublic void onReadBuffer(ByteBuffer byteBuffer, BufferInfo bufferInfo, int i) {Format fmt decoder.getBufferFormat(byteBuffer);System.out.println(fmt.toString() fmt.toString());// 写入文件writeFile(byteBuffer,bufferInfo,i);System.out.println(onReadBuffer bufferInfo.toString());}Overridepublic void onError(int errorCode, int act, int trackId) {throw new RuntimeException();}};/*** 调用 start()方法开始解码*/public void start(){boolean start decoder.start();System.out.println(start start);}/*** 调用getAvailableBuffer取到一个可用的ByteBuffer把数据填入ByteBuffer里然后再调用writeBuffer把ByteBuffer写入解码器实例*/public void framebuffer(){int i 1;boolean reachEnd false;while (!reachEnd){extractor.next();//下一帧ByteBuffer dstBuf null;dstBuf decoder.getAvailableBuffer(100000);if (dstBuf null) {try {Thread.sleep(200);} catch (InterruptedException e) {System.out.println(InterruptedException);}continue;}System.out.println(02b dstBuf.toString() dstBuf.toString());BufferInfo bufferInfo new BufferInfo();bufferInfo.offset 0;bufferInfo.size extractor.readBuffer(dstBuf, 0);bufferInfo.timeStamp extractor.getFrameTimestamp();bufferInfo.bufferType extractor.getFrameType();System.out.println(bufferInfo bufferInfo bufferInfo.timeStamp);reachEnd extractor.getStreamId() -1;System.out.println(reachEnd reachEnd);if(reachEnd){bufferInfo.bufferType bufferInfo.BUFFER_TYPE_END_OF_STREAM;}boolean ret decoder.writeBuffer(dstBuf, bufferInfo);System.out.println(writeBuffer ret ret);try {Thread.sleep(200);} catch (InterruptedException e) {System.out.println(InterruptedException);}}} /*** 停止解码释放资源*/public void stopAndRelease(){System.out.println(VedioDecoder stopAndRelease);decoder.stop();decoder.release();} 步骤2封装writeFile方法将获取到的buffer数据写入pcm文件中此处com.harmonyospro.myapplication为工程bundleName可替换为应用包名代码如下 private void writeFile(ByteBuffer outputBuffer, BufferInfo info, int trackId) {FileOutputStream fileOutputStream null;File fd new File(/data/data/com.harmonyospro.myapplication/1.pcm);try {fileOutputStream new FileOutputStream(fd, true);final byte[] chunk new byte[info.size];outputBuffer.get(chunk);fileOutputStream.write(chunk, 0, outputBuffer.limit());outputBuffer.clear();} catch (FileNotFoundException e) {System.out.println(02b FileNotFoundException);} catch (IOException e) {System.out.println(02b IOException);}finally {try {fileOutputStream.close();} catch (IOException e) {System.out.println(IOException);}} } 步骤3在需要调用视频提取音频的地方进行方法调用代码如下 VideoDecoder videoDecoder new VideoDecoder(); videoDecoder.createDecoder(); videoDecoder.start(); videoDecoder.framebuffer(); //vedioDecoder.stopAndRelease(); // 需要停止的时候停止 这里就完成从视频获取音频并保存到pcm文件的功能了获取到pcm文件就可以使用AudioRenderer进行播放了。 【参考文档】 视频编解码文档https://developer.harmonyos.com/cn/docs/documentation/doc-guides/media-video-codec-0000000000031749 媒体提取开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides/media-video-extractor-0000000000044202 音频播放开发指导https://developer.harmonyos.com/cn/docs/documentation/doc-guides/media-audio-playback-0000000000031734
http://www.w-s-a.com/news/120772/

相关文章:

  • 个人网站可以做淘客网站设置的参数
  • 自适应网站制作公司做室内设计通常上的网站
  • 网站建设项目采购公告建设网站公司建网页
  • 自己做网站怎么推广网站建设应该考虑哪些方面
  • 我做的网站手机上不了wordpress插件整站搬家
  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站
  • 证券投资网站建设视频直播怎么赚钱的
  • 建设酒店网站ppt模板下载郑州小程序设计外包
  • 网站建设自我总结google推广公司
  • 安全网站建设情况wordpress 评论表单
  • 网站建设发言材料个人网站推广软件
  • php建站软件哪个好南京哪家做网站好
  • 排名好的手机网站建设番禺网站建设专家
  • 番禺怎么读百度有专做优化的没
  • 网站开发中应注意哪些问题网络营销的主要特点
  • 网站定制案例北京网站制作招聘网
  • 网站建设与推广实训小结网站建设专业英文
  • 郑州网站建设动态凡科网站建设是免费的吗
  • 湖北手机网站建设wordpress转emlog博客
  • 北京东站设计网名的花样符号
  • 安徽建设厅网站首页网站开发aichengkeji
  • 自贡网站制作荣茂网站建设
  • 什么做的网站吗正规的机械外包加工订单网
  • 网络工程公司的业务邵阳seo快速排名
  • 博主怎么赚钱网站seo找准隐迅推
  • 营销号经典废话北京网站建设公司网站优化资讯