在Android上为iPhone播放录音有时可以

时间:2018-07-17 20:21:43

标签: android ios android-7.0-nougat android-mediarecorder

请不要重复使用,因为它与我发现的帖子不同,并为可行的解决方案提供了线索

我已经在Android Studio中编写了代码(见下文)以将音频录制到文件中,并且效果很好。一个有据可查的问题是,这些文件实际上不是mp3文件,而是mp4,因此无法在iPhone上播放。如果您使用文件扩展名.m4a,它将在iPhone上而不在Android(和某些在线电子邮件预览器)上运行。我的开发人员使用的是5.0.1棒棒糖(三星S4)和4.4奇巧。

我放弃了寻找单个文件解决方案的希望,但随后尝试在运行7.0 Nougat的LG K8 2017上运行我的代码。令我惊讶的是,iPhone可以播放在那里记录的文件。我想知道这是否是对Android的更改而使之成为可能。我曾在6.0棉花糖(Alcatel U3)上尝试过相同的代码,但在iPhone上无法播放。我没有其他电话可以尝试。

我想知道以下内容:

  • 在所有7.0牛轧糖及更高版本的手机上都可以使用吗?
  • 它是不是专门针对LG K8 2017的硬件/软件(刚从包装盒中取出)?
  • 该更改是否是特定于原子的,因此可以“修复”在另一部电话记录的文件中?

关于MP4,我是个新手,但是从原子上看,我可以看到很多差异(例如LG K8是唯一具有moov.udta.auth和moov.udta.type原子的原子)。 / p>

我的模拟器太慢,无法在此进行调查。

String mFileName = getCacheDir().getAbsolutePath() + File.separator + "audio.mp3";
mRecorder = new MediaRecorder();

//mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); 
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mRecorder.setAudioEncodingBitRate(16000);
mRecorder.setAudioSamplingRate(8000);
mRecorder.setAudioChannels(1);

mRecorder.prepare();
mRecorder.start();
/* ....... */
mRecorder.stop();
mRecorder.reset();
mRecorder.release();

0 个答案:

没有答案