テーブル内にメディアプレーヤー(オーディオ/ビデオ)を埋め込む方法はありますか?

メディアファイルを何らかの表形式に整理する方法があるか気になっています。現在のアプローチは以下の通りです:

テスト 1:

テスト 2:

テスト 3:

ただし、URL の代わりにプレイヤーを埋め込むような、以下のような形にしたいと考えています:

ああ、これは難しいですね。要するに、行の先頭ではないリンクで「フルワンボックス」を強制する方法を求めています。あなたが示しているような極めて稀な状況では、これが役立つかもしれません。

行の途中でワンボックスを強制したい、といった超ニッチなケースのために、以下のような変更を認めることに賛成です。

<a href="onebox_url" type=onebox>...</a>

ただ、現在のワンボックスのスタイルはすべて「行内にこれしか存在しない」という前提で、全幅になるように設定されています。そのため、多くの前提条件を変更する必要があります。

また、details セクション内でワンボックスを表示したい場合にも役立ちます。

これが役立つかどうかはわかりませんが、代替のインターフェースとして BBCode 構文を拡張する方法があります。例えば:

[audio src="https://file.m4a"][/audio]

あるいは以下のようにも可能です:

[inline_onebox]https://file.m4a[/inline_onebox]

それとも、audio、video、source タグをホワイトリストに追加するだけでよいのでしょうか?現在、Discourse に複数のソース(1 つの mp4 と 1 つの webm)を持つ動画を投稿することは不可能で、すべてのデバイスで再生できません。

Iframe の許可と、表の他の場所への投稿をご検討されましたか?

@martin 素晴らしい PR をありがとうございます!https://github.com/discourse/discourse/pull/8760 これにより、URL の左側に文字があってもオーディオリンクが機能するようになりました!:tada:(多くのユーザーがこの点で苦労していたので、これでずっと楽になるでしょう)。

また、details タグ内でもオーディオファイルが動作することに気づきました:

Markdown テーブル内でも動作することを期待していましたが、まだ機能していないようです:

名前 オーディオファイル
![New Recording 23

問題はパイプ文字 | によるものかと思いましたが、HTML テーブルでも動作しません:

名前 オーディオファイル
![New Recording 23|video](upload://g3KMoFLMKmekLPcoBovHQCD71eU.mp4)

これは将来のリリースで実装される機能でしょうか?

Markdown テーブルは機能しますが、|\ でエスケープする必要があります(例:\|)。パイプ文字にはすでに Markdown テーブルのセマンティクスが割り当てられているため、これはやや面倒な問題です。

別のオプション文字を分割区切り文字として追加することに半分賛成です。カンマは、説明に使用される可能性があるため、理想的ではありません。

今のところ、これはかなり良い回避策ですね。指摘してくださってありがとうございます!

私が遭遇した唯一の問題は、複数のオーディオファイル(実際には同じファイルの繰り返し)を含む中程度のサイズのテーブルを編集しようとした際に発生する429エラー(リクエストが多すぎます)です。変更を保存しようとすると、Discourseのモーダルが表示され、コンソールには以下のようなメッセージが出ていました:

私が行ったのは、このテーブルに3行を追加しただけです:

これが期待される動作なのか、あるいはエラーを回避するためにリソースを遅延読み込みする方法があるのかはわかりません(何度か再試行した後に解決できました)。

うーん、興味深い質問ですね。現在、ページに40MBのMP3ファイルを配置した場合、ブラウザは再生する前にすべてをダウンロードしているのでしょうか?

もし現状がそうなら、遅延ローダーを採用するのは確かに理にかなっています。欠点といえば、曲の長さ(duration)が取得できなくなることですが、これはサーバー側で解決できます。