アプリ版:「スタンプのみでお礼する」機能のリリースについて

ホームページで動画配信しています。
objectタグだけでは読み込めないブラウザがあるためembedタグを挟み込んでどのブラウザでも読み込めるようにしてます。
firefoxはobjectタグは無視していて、embedタグで表示されますが、動画上で右クリックをするとパスが表示されてしまいます。
これを表示させない方法はないでしょうか?
firefox対応の右クリック禁止javascriptを使用したところ、ページでは大丈夫でしたが動画上では無効でした。
http://okwave.jp/kotaeru.php3?q=1375996のページのように
画像を載せるやり方をやってみましたがfirefoxでは意味がありませんでした。

A 回答 (3件)

メディアの操作盤はメディアプレーヤーの一部ですから機能はメディアプレーヤーに依存します。


そのため EMBED タグなどは JavaScript などによるコンテキストメニュー規制が使えません。
その代わり enabledcontextmenu="0" を指定することでコンテキストメニューを表示させないようにすることが出来ます。

この回答への補足

>メディアの操作盤はメディアプレーヤーの一部ですから機能はメディアプレーヤーに依存します。
>そのため EMBED タグなどは JavaScript などによるコンテキストメニュー規制が使えません。
そうですね。どうして動画上だけ右クリックができてしまうのか疑問が解けました。

>enabledcontextmenu="0" を指定することでコンテキストメニューを表示させないようにすることが出来ます。
enabledcontextmenu="0"はすでに入れていますがfirefoxでは無効なようです。IEでは効果ありますがobjectタグ側で禁止できているので・・・。

補足日時:2006/05/23 23:34
    • good
    • 0

>enabledcontextmenu="0"はすでに入れていますがfirefoxでは無効なようです。

IEでは効果ありますがobjectタグ側で禁止できているので・・・。
何か誤解されているようなので詳しく説明しておきます。
Web ページ上から Windows Media Player プラグインを用いて動画コンテンツを再生する場合、
タグは以下のようになると思います。ここまではお分かりですよね?

<OBJECT ID="MediaPlayer1" width="490" height="340"
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
CODEBASE="http://activex.microsoft.com/activex/controls/mp …
standby="Loading Microsoft® Windows® Media Player components..."
type="application/x-oleobject">
<PARAM NAME="AutoStart" VALUE="False">
<PARAM NAME="FileName" VALUE="hoge.asf">
<PARAM NAME="ShowControls" VALUE="true">
<PARAM NAME="ShowStatusBar" VALUE="true">
<PARAM NAME="EnableContextMenu" value="false">
<EMBED type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
SRC="hoge.asf"
name="MediaPlayer1"
width="490"
height="430"
autostart="0"
showcontrols="1"
autosize="0"
showstatusbar="1"
enablecontextmenu="0">
</EMBED>
</OBJECT>

このタグを詳しく説明していきますと、まず object タグと param タグで指定されている部分は、
Internet Explorer 向けに ActiveX でメディアプレーヤーの再生設定や表示項目などを設定しているものです。
IE 独自拡張の ActiveX です。この部分は非 IE 系ブラウザでは全く効果がありませんので全て無視されます。

次に入れ子にされている embed タグは非 IE 系ブラウザ向けにプラグインでメディアプレーヤーを設定しています。
object タグと param タグで設定した項目をもう一度設定しなければなりません。
この部分は非 IE 系ブラウザでのみ有効となり、
object タグが有効な IE では param タグ以外の入れ子タグが全て無視されます。

ここまで言えばもうお分かりかとは思いますが、
まぁ要は object タグが無効な環境下では param タグで enablecontextmenu を指定しても全く意味がないということです。
ちなみに、embed タグの部分は真偽値を全て 0 と 1 で設定しなければ意味がありません。
true や false を設定してもどういうわけか無視されてしまいますので覚えておくといいのではないかと思います。

あとついでに言うと、企業サイトなどでよくページソース暗号化+映像のストリーミング配信+メディアプレーヤーのコンテキストメニュー無効化という三段構えの転載防止策が施されているのですが、これでもやり方を知ってる人からすれば全く意味がありません。
あっさりと暗号化の防壁を破られ、ストリーミングファイルを見つけ出され、本体を見つけ出されてダウンロードされてしまいます。
いくら頑張っても技術のある人にはこういう形での転載防止策は無意味です。
どうしても阻止したければ Flash 化が一番効果的な手段となります。
まぁ、ダウンロードした人が映像を転載するのかどうかというのは全く別問題になりますけどね。
    • good
    • 0
この回答へのお礼

できました!ありがとうございます。
よく見てみるとenablecontextmenu="0"のところをfalseにしてました・・・。

誤解はしてないですよ。objectタグにembedタグをはさんでいる段階で訳わからず使ってはいないでしょう。

>embed タグの部分は真偽値を全て 0 と 1 で設定しなければ意味がありません。
とありますが、objectを使わずembedタグのみ使用でfalseとしてIEでは効果を確認しています。

>ページソース暗号化+映像のストリーミング配信+メディアプレーヤーのコンテキストメニュー無効化
私のサイトもこれに近いです。ついでに右クリック禁止も加わってストリーミングサーバを使わずキャッシュにも残していません。
firefox使われれば初心者でも知らない間に復号できますし、ページ情報から簡単に落とされますが、10人いて9人がわからなければいいんです。
FlashだってNICのパケットキャプチャツール使うようなマニアックな人物に対しては無意味でしょう。だからといって初心者向けには対策していくでしょう?

お礼日時:2006/05/25 00:05

URIを非表示にしたいと考えている人は結構多いですが、完全に隠し通すことは技術的に不可能です。


ソースを表示すれば属性値として指定されたURIはすぐわかりますし、Firefox等にはページの情報という機能も搭載されていますから(どちらも防ぎようがありません)、例えコンテキストメニューを禁止したとしても、割と容易にURIが判明してしまいます……。
ウェブコンテンツとして公開している以上、その辺は諦めざるをえないでしょう。

この回答への補足

>ウェブコンテンツとして公開している以上、その辺は諦めざるをえないでしょう。
それを言ったらどんな技術も無駄ということになってしまいます。
例えば動画ならビデオ撮影すればどんな技術も無駄ですがDRMのような技術は使われています。
完全に隠せなくとも素人が普通に落とせないようにしていこうと思っているだけです。

補足日時:2006/05/24 22:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!