搭建全民K歌TV运行环境

搭建全民K歌TV运行环境

在LeMe音响(全志H5平台 Android5.1)上能跑起来全民K歌TV套件(即:全民K歌APP + 全民K歌助手 + Dongle + 无线麦克风),为了熟悉这套东西,先在手上有全志H3板子试跑了一下,会报错;在相同平台全志H5平台Android7.0也不能中跑起来;最终选购一块提供Android5.1源码的全志H5开发板,终于能跑起来了。要求有如下:

  1. 全民K歌和助手需要签上系统签名才能正常安装;
  2. 助手需要和Dongle进行通信,所以/dev/bus/usb以下的文件要有访问权限,H5平台源码默认开放;
  3. 助手需要直接访问/dev/snd/pcmCxxx进行录音和播放,也需要这个权限,H5平台源码默认开放;
  4. 助手播放只播放到名字为sndspdif中,如果内核中禁用了此声卡,则也会导致失败,H5平台有厂家提供的固件禁用了此声卡,需要自行编译内核启动该声卡;

这样,就能跑起来了。

证明为假的假设:

  1. 会绑定MAC地址
    确实会读取MAC地址,但是没有对MAC地址进行锁定;

  2. 系统需要做很大的改动
    原生系统没有改动也运行起来了;

整这个花费了10天时间,第一次编译全志平台的源码,那个lichee有些难用:)。

mMediaPlayer.prepare(); Log.v(TAG,"==mRecordPath==="+mRecordPath+"=mAccompanyPath=="+mAccompanyPath); mAccompany = new FileInputStream(mAccompanyPath); mRecord = new FileOutputStream(mRecordPath); mAccompany.read(header); // mRecord.write(header); mMediaPlayer.start(); mAudioRecord.startRecording(); mUpdateProgressHandler.post(mUpdateProgressRunnable); // 边录音边混合 while (isRunning) { Log.v("H3c", "run=============================================="); int rSize = mAudioRecord.read(recordBuf, 0, RecorderParameter.bufferSizeInBytes); Log.v("H3c", "go:" + rSize); int size = mAccompany.read(accompanyBuf, 0, RecorderParameter.bufferSizeInBytes); Log.v("H3c", "s:" + size); if (size < 0) { isRunning = false; Log.v("H3c", "run======isRunning======="+isRunning); continue; } byte[] mixBuff = new byte[size]; //播放一包录音 if(null != audioTrack){ audioTrack.write(recordBuf, 0, rSize); } for (int i = 0; i < size; i++) { mixBuff[i] = (byte) Math .round((accompanyBuf[i] + recordBuf[i]) / 2); } mRecord.write(mixBuff); } } catch (IOException e) { Log.v("H3c", "=====catch==="+e); e.printStackTrace(); } finally { Log.v("H3c", "=====final====="+isRunning); if (mMediaPlayer != null) { mMediaPlayer.stop(); } if (mAudioRecord != null) { mAudioRecord.stop(); } if(null != audioTrack){ audioTrack.stop(); } try { mAccompany.close(); mRecord.close(); } catch (IOException e) { e.printStackTrace(); } mUpdateProgressHandler .removeCallbacks(mUpdateProgressRunnable); // RemoveFile(mRecordPath); } copyWaveFile(mRecordPath, SavaAudioPath); RemoveFile(mRecordPath); Log.e("H3c", "end");
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值