iOS 移动设备上 React App 的静音功能
Mute Function for React App on iOS Mobile Devices
我最近在我的应用程序中添加了一个复选框,用作我创建的静音功能的切换开关。它在所有桌面浏览器(Chrome、Safari、Mozilla 和 Edge)和 Android 设备上运行良好,但由于某些原因,它无法在移动 iOS 设备上运行(iPhone 12 iOS v14.1,和 iPad iOS v14.1).
这是我的代码,为了可读性减去了多余部分。
const Header = () => {
...
const [mute, setMute] = useState(false);
const location = useLocation();
...
const toggleMute = (check: boolean) => {
setMute(check);
if (check) audioFiles[`${location.pathname.substr(1)}_${gender}`].volume = 0;
else audioFiles[`${location.pathname.substr(1)}_${gender}`].volume = 1;
};
return (
<div>
<AppBar position="fixed">
...
<div>
<input
type="checkbox"
name="mute"
id="mute"
onClick={(event) => toggleMute(event.currentTarget.checked)}
checked={mute}
disabled={location.pathname.endsWith('home')}
/>{' '}
Mute
</div>
...
</AppBar>
</div>
);
}
我可以点击复选框,它会显示为已选中,但似乎不会触发静音切换。
我尝试同时使用 onChange 而不是 onClick 以及与 onClick 一起使用,但我看不出有什么不同。
注意:音频文件保存在一个数组中,可在整个应用程序中访问,并根据用户选择的位置和性别命名。
为什么这在其他地方都有效,但在移动设备上却无效iOS?
如果需要,我可以提供更多代码。
注意:我遇到了类似的问题 iOS 根本不允许我的音频播放,因为它没有使用控件来播放。我通过将音频合并到一个文件中解决了这个问题。
我自己解决了这个问题。
没有使用音频文件的音量 属性,而是有一个我不知道存在的静音 属性。
这解决了问题。
仅供参考:在移动 iOS 上调整音量 属性 每次单击复选框时都会重置回原始设置。
我最近在我的应用程序中添加了一个复选框,用作我创建的静音功能的切换开关。它在所有桌面浏览器(Chrome、Safari、Mozilla 和 Edge)和 Android 设备上运行良好,但由于某些原因,它无法在移动 iOS 设备上运行(iPhone 12 iOS v14.1,和 iPad iOS v14.1).
这是我的代码,为了可读性减去了多余部分。
const Header = () => {
...
const [mute, setMute] = useState(false);
const location = useLocation();
...
const toggleMute = (check: boolean) => {
setMute(check);
if (check) audioFiles[`${location.pathname.substr(1)}_${gender}`].volume = 0;
else audioFiles[`${location.pathname.substr(1)}_${gender}`].volume = 1;
};
return (
<div>
<AppBar position="fixed">
...
<div>
<input
type="checkbox"
name="mute"
id="mute"
onClick={(event) => toggleMute(event.currentTarget.checked)}
checked={mute}
disabled={location.pathname.endsWith('home')}
/>{' '}
Mute
</div>
...
</AppBar>
</div>
);
}
我可以点击复选框,它会显示为已选中,但似乎不会触发静音切换。
我尝试同时使用 onChange 而不是 onClick 以及与 onClick 一起使用,但我看不出有什么不同。
注意:音频文件保存在一个数组中,可在整个应用程序中访问,并根据用户选择的位置和性别命名。
为什么这在其他地方都有效,但在移动设备上却无效iOS?
如果需要,我可以提供更多代码。
注意:我遇到了类似的问题 iOS 根本不允许我的音频播放,因为它没有使用控件来播放。我通过将音频合并到一个文件中解决了这个问题。
我自己解决了这个问题。
没有使用音频文件的音量 属性,而是有一个我不知道存在的静音 属性。
这解决了问题。
仅供参考:在移动 iOS 上调整音量 属性 每次单击复选框时都会重置回原始设置。