回答編集履歴
4
実装例の追記
test
CHANGED
@@ -37,3 +37,7 @@
|
|
37
37
|
panicが起きちゃうとWASMインスタンスは終了してアクセス不能になります。
|
38
38
|
必ずユーザー操作イベントに紐づけてWebAudioの利用を開始するようにしていました。
|
39
39
|
|
40
|
+
## 実装例
|
41
|
+
|
42
|
+
https://zenn.dev/nobonobo/articles/42d999fee88a1d
|
43
|
+
|
3
誤字修正
test
CHANGED
@@ -33,6 +33,7 @@
|
|
33
33
|
「Goを経由しない時には音が出せていたので」というのとは合致しません。
|
34
34
|
音が出せていた時と状況が異なるようです。
|
35
35
|
|
36
|
-
ただ、僕がWebAudioを試しているときもこの条件でpanic
|
36
|
+
ただ、僕がWebAudioを試しているときもこの条件でpanicが起きるので、
|
37
|
+
panicが起きちゃうとWASMインスタンスは終了してアクセス不能になります。
|
37
38
|
必ずユーザー操作イベントに紐づけてWebAudioの利用を開始するようにしていました。
|
38
39
|
|
2
追記
test
CHANGED
@@ -8,3 +8,31 @@
|
|
8
8
|
|
9
9
|
`osc.Set("frequency", 440)`
|
10
10
|
|
11
|
+
## 追記
|
12
|
+
|
13
|
+
```html
|
14
|
+
<script>
|
15
|
+
// デフォルト設定でAudioContextを取得
|
16
|
+
let ctx = new AudioContext();
|
17
|
+
// 基本的な音を発するオシレータのAudioNodeをコンテキストの中に作成
|
18
|
+
// 周波数は440Hz、波形はサイン波
|
19
|
+
let osc = new OscillatorNode(ctx);
|
20
|
+
osc.frequency = 440;
|
21
|
+
osc.type = "sine";
|
22
|
+
// オシレータノードの出力をコンテキストのスピーカーに接続
|
23
|
+
osc.connect(ctx.destination);
|
24
|
+
// オシレータの処理を開始
|
25
|
+
osc.start();
|
26
|
+
</script>
|
27
|
+
```
|
28
|
+
|
29
|
+
以上の記述のHTMLをブラウザで表示しようとすると、
|
30
|
+
`The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.`
|
31
|
+
この表記がコンソールログに出力されます。
|
32
|
+
|
33
|
+
「Goを経由しない時には音が出せていたので」というのとは合致しません。
|
34
|
+
音が出せていた時と状況が異なるようです。
|
35
|
+
|
36
|
+
ただ、僕がWebAudioを試しているときもこの条件でpanicを起きるので、
|
37
|
+
必ずユーザー操作イベントに紐づけてWebAudioの利用を開始するようにしていました。
|
38
|
+
|
1
補足追記
test
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
- js.Value.Get(フィールド名)
|
2
|
+
- js.Value.Set(フィールド名, 値)
|
3
|
+
- js.Value.Call(フィールド名, params...)
|
4
|
+
|
5
|
+
これらのフィールド名にドット混じりは使えません。
|
6
|
+
|
1
7
|
`osc := js.Global().Get("OscillatorNode").New(ctx)`にてoscオブジェクトを取得したのであればそれを使ってください。
|
2
8
|
|
3
9
|
`osc.Set("frequency", 440)`
|