我正在尝试构建一个需要录制电话的应用程序(主要是外出)
我尝试将媒体源设置为MediaRecorder.AudioSource.VOICE_CALL,这会导致应用冻结。
我还尝试将媒体源设置为MediaRecorder.AudioSource.VOICE_DOWNLINK,但一旦连接到电话就会崩溃。
我尝试过以下权限:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.Permissions.PROCESS_OUTGOING_CALLS"/>
但没有任何作用。
有关录制电话的任何建议。
另外,我发现一些旧帖子说只有部分手机允许录制语音电话。
有没有办法以编程方式检测此应用程序是否在这样的手机上运行(如果没有,我可以指示他们使用扬声器电话或其他东西)
谢谢!
答案 0 :(得分:2)
不是直接处理录制,而是通过子类化录制部分来使用异步任务。这可以提高您的应用程序性能并避免崩溃。希望这个http://developer.android.com/resources/articles/painless-threading.html能让你在这个方向上有更好的想法。
答案 1 :(得分:1)
为了实现这一点,你需要所有这些,我相信:
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CALL_PHONE" />
并且很可能
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
当然,您需要确保所有适当的警告和EULA都已到位。
不确定您发布了什么
<uses-permission android:name="android.permission.Permissions.PROCESS_OUTGOING_CALLS"/>
是一个错字,但它应该是
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
就像你说的那样:old posts谈论一些设备不支持通话录音功能的事实。
我建议您尝试使用上述权限,看看是否可以在其他设备上进行测试以缩小设备或编程问题的范围,如果是设备,那么您可以了解并更好地找到可能的解决方法。