我想在通话期间录制来电和拨出线路的语音.我尝试了许多解决方案,否则可以在Moto Phones以外的设备上工作(在我的情况下,我已经尝试过Moto E(第二代),Moto G5和Moto C).我试过这两个库:
03-07 10:56:57.307 293-9261 /?E/AudioRecord:无法获取记录源4的音频输入,采样率8000,格式0x1,通道掩码0x10,会话3494,标志0 03-07 10:56:57.308 293-9261 /?E/StagefrightRecorder:音频源未初始化03-07 10:56:57.309 7290-7290/com.callrecorder.android E/MediaRecorder:开始失败:-2147483648 03-07 10:56:57.314 7290-7290/com.callrecorder .android E /呼叫记录器:无法设置记录器.java.lang.RuntimeException:启动失败.在android.app.MediaRecorder.start(Native Method)的com.callrecorder.android.RecordService.startRecording(RecordService.java:194)at com.callrecorder.android.RecordService.onStartCommand(RecordService.java:92)at android.app .ActivityThread.handleServiceArgs(ActivityThread.java:3028)位于android.app.Handler.dispatchMessage上的android.app.ActivityThread.-wrap17(ActivityThread.java)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1452) (Handler.java:102)在android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5443)java.lang.reflect.Method.invoke(Native Method) )com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
根据官方Android文档
从VOICE_CALL源捕获需要CAPTURE_AUDIO_OUTPUT权限.此权限保留供系统组件使用,不可用于第三方应用程序.
因此,我尝试将AudioSource更改为AudioSource.VOICE_COMMUNICATION无崩溃的工作.但是无法记录传入的声音.它只记录传出的声音.我尝试过同样AudioSource.DEFAULT但又没有运气.它的行为与...相同AudioSource.VOICE_COMMUNICATION
这个库在NDK级别有一些调整.但是,这也给出了与上面的库相同的结果AudioSource.VOICE_COMMUNICATION
根据MOTO的官方论坛,这个讨论主题摩托罗拉官员表示,他们不支持内部的VOICE CALL录制,但某些第三方应用程序可能会这样做.哪个是对的.Play商店中的自动呼叫记录器应用程序提供相同的工作解决方案.我无法找到它做了什么样的修改,这给了它一个有效的解决方案.任何帮助,将不胜感激
我正在使用 just_audio 插件,它有一个功能描述:从字节流读取。
基本上,当我放置一个文件(来自 url)来播放时,我会保存文件中的字节,因此在这一步之后我想在本地播放它。
我有一个关于如何从字节流播放的问题。谁能提供一个例子如何做到这一点?我需要将其放在我的播放列表中,因此它必须是 ConcatanatingAudioSource 的子项。
我发现的唯一音频源是使用来自 Uri 的音频源。
final _playlist = ConcatenatingAudioSource(
children: [
AudioSource.uri(
Uri.parse(
"https://s3.amazonaws.com/scifri-episodes/scifri20181123-episode.mp3"),
tag: AudioMetadata(
album: "Science Friday",
title: "ddddd",
artwork:
"https://media.wnyc.org/i/1400/1400/l/80/1/ScienceFriday_WNYCStudios_1400.jpg",
),
)
]
)
Run Code Online (Sandbox Code Playgroud)
这就是我保存字节的方式:
void getBytes() async {
Uri uri = Uri.parse(url);
var rng = new Random();
// get temporary directory of device.
Directory tempDir = await getTemporaryDirectory();
// get temporary path from temporary directory.
String tempPath = tempDir.path;
// create a new file in temporary path with random file …Run Code Online (Sandbox Code Playgroud) 我正在 Unity 上编写一个游戏项目,却发现无法在主菜单中无限播放音频。
问题是该曲目仅播放一次(保留在菜单中),而我需要它重复播放直到玩家离开菜单。
这是我启用音乐的代码部分。我为此使用 AudioClip 和 AudioSource。
public AudioClip menu;
private AudioSource audio;
void Start() {
...
audio = GetComponent<AudioSource>();
audio.loop = true;
audio.PlayOneShot(menu);
...
}
Run Code Online (Sandbox Code Playgroud) audio-source ×3
android ×1
audio ×1
byte ×1
bytestream ×1
c# ×1
flutter ×1
just-audio ×1
loops ×1