我想播放一些音频,音量级别调整为耳朵的大小。“通话模式”。为此,我使用众所周知且普遍建议的
audioManager.setMode(audioNormalState ?
AudioManager.MODE_NORMAL : AudioManager.MODE_IN_COMMUNICATION);
Run Code Online (Sandbox Code Playgroud)
问题是我并不总是在模式切换后播放音频,我必须等待并且不确定多久,甚至可能是几分钟。我做了一些循环记录,MODE_IN_COMMUNICATION
只要用户在某些搭载 Android 9 的摩托罗拉上的应用程序中处于“电话通话模式”,模式就会保留,但在配备Android 12 的 Pixel 3 上,6 秒后模式会自动切换回MODE_NORMAL
当没有播放任何内容时。没有执行额外的代码(如某些侦听器),没有额外的(系统)日志。当我在切换到MODE_IN_COMMUNICATION
模式后 1 秒开始播放音频时,只要播放音频(甚至超过 6 秒),它就不会自动切换,但在完成模式后也会自动切换到MODE_NORMAL
.
我的应用程序可以发出某种实时语音呼叫(命令),但也可以“发出蜂鸣声”一些信号模式,并且还有一个历史记录功能,可以按时间顺序再次播放所有发声动作。如果这只是语音,那么MODE_IN_COMMUNICATION
仅在通话期间切换到和返回可能就足够了,但是如何处理非常重要的SoundPool
广告歌曲,我是否也必须为它们切换模式?(或者对于历史播放,这是一个混合)据我所知模式切换并不快(在某些设备上甚至是几秒),所以我可能会对数百毫秒的短信号应用一些显着的延迟(没办法,每个毫秒都是至关重要!)或者即使在“电话呼叫模式”下,当模式没有“足够快”改变时(用户不会高兴),我也冒着大声播放信号/语音的风险。我依赖于固定设置(但根据应用程序状态和设置进行配置)MODE_IN_COMMUNICATION
,该设置一直有效到 Android 12...(可以确认 Pixel 和 Samsung 上的新/错误行为)
目前使用的切换音频模式+配置的方法如下,值得注意的是,该setSpeakerphoneOn
方法在 Android 12 上也并不总是有效。至少在打开时不起作用MODE_NORMAL
,这是现在默认的自动切换回模式,也是isSpeakerphoneOn
第false
一个开始,但我所有的音频源实际上都大声播放......
// forceAudioNormalState = true only when app exit!
public static void resolveLoudState(AudioManager audioManager, boolean forceAudioNormalState) {
boolean silentPhoneCallMode = isPhoneCallModeEnabled(); // phone call GUI, only …
Run Code Online (Sandbox Code Playgroud) 每当我保存并 React 热重新加载应用程序时,就会注入一个具有高 z-index 的 iframe,这使得 UI 不可点击。
我必须打开开发工具并删除该元素,或者必须刷新 UI 才能再次正常工作。
如果我删除 dom 元素,它不会尝试再次添加到 UI 中,除非我刷新并且有另一个热重新加载。使用隐身模式或不使用扩展名会产生相同的结果。
有人使用过 emoji_picker_flutter 包并使用过提供的搜索功能吗?试图让它一切正常,但没有成功。任何帮助都会很棒,下面是我的代码。我希望文本输入成为搜索字段,当单击搜索字段时,表情符号会消失,直到您进行搜索。我已经能够通过分配一个设置状态和一个布尔值来显示或不显示表情符号来实现这一点,我只是无法使用这个包实现搜索功能。
// 根据关键字搜索相关表情符号 --- 这是用于使搜索正常工作的给定信息...
final filterEmojiEntities = await EmojiPickerUtils().searchEmoji("face");
import 'dart:io';
import 'package:emoji_picker_flutter/emoji_picker_flutter.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
/// Example for EmojiPickerFlutter
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final TextEditingController _controller = TextEditingController();
bool emojiShowing = false;
_onEmojiSelected(Emoji emoji) {
_controller
..text += emoji.emoji
..selection = TextSelection.fromPosition(
TextPosition(offset: _controller.text.length));
}
_onBackspacePressed() {
_controller
..text = _controller.text.characters.skipLast(1).toString()
..selection = TextSelection.fromPosition(
TextPosition(offset: _controller.text.length));
}
@override
Widget build(BuildContext …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 .apk 在设备上运行 apk 文件flutter install
。显示以下错误
Error: ADB exited with exit code 1
Performing Streamed Install
adb: failed to install F:\...\build\app\outputs\flutter-apk\app.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES:Failed to collect certificates from /data/app/vmdl619719557.tmp/base.apk: Attempt to get length of null array]
Install failed
Run Code Online (Sandbox Code Playgroud)
如何领取证书?
我的 flutter 应用程序突然出现问题。由于某种原因,我无法运行任何 flutter 文件。每次我尝试运行任何 flutter 项目时,它都会不断向我显示错误消息。
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':flutter_appavailability:androidApis'.
> Failed to transform file 'android.jar' to match attributes {artifactType=android-platform-attr} using transform PlatformAttrTransform
> java.io.FileNotFoundException: /Users/wooyoung/Library/Android/sdk/platforms/android-27/android.jar (No such file or directory)
* Try:
Run with --stacktrace option to get the stack trace. Run with the -the-info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help …
Run Code Online (Sandbox Code Playgroud) 我正在努力将应用程序中的通知类型更改为time-sensitive
iOS active
15+。我注意到,如果我进入 iPhone 设置 -> 通知 -> 并打开 Uber 或 FB Messenger 等应用程序,我会看到它们有一个单独的标志,可以启用时间敏感的通知,而其他应用程序则没有。请参阅随附的提醒、Instagram、Facebook 和 Uber 示例。
我和我的开发同事找不到正确的文档来解释如何为我们的用户启用此类设置。这是否意味着我们在代码中突出显示的任何对时间敏感的通知将在未经用户额外同意的情况下默认发送?有什么建议吗?
apple-push-notifications ios swift apple-documentation ios15
我收到以下错误。
This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures-, or future build failures, try to migrate this app to the V2 embedding.
Take a look at the docs for migrating an app: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
The plugin `audio_session` requires your app to be migrated to the Android embedding v2. Follow the steps on https://flutter.dev/go/android-project-migration and re-run this command.
Run Code Online (Sandbox Code Playgroud)
该应用程序已经使用 Android 嵌入,我使用的是 Flutter 2.23 版本。我也检查了这个。https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
我也没有使用该audio_session
插件,并且不知道哪个库正在使用它。有人可以帮忙吗?