D0804244 外部FLVの読み込みの不具合について
Name よーし
Date 2008年04月24日 (木) 15時10分
Message いつもサイトを利用させていただきありがとうございます。

SWFコンテンツは投稿者により削除されました

説明下手なので直接貼り付けました
問題点
ボタンを押すと外部FLVを読み込んでるんですがどうもFLVがダウンロード中にほかのボタンをおすと3日目で必ずFLVの置いてあるサーバーに接続できなくなりflvがダウンロード出来なくなるんですが。自分なりに調べるとサーバーの設定には異常はないのですが、どうもInternet Explorerだと、同時ダウンロード数が通信中と誤判断されてるのかと思いブラウザーをFirefoxに変えて試したところ何回やってもいけました。皆さんはどのように回避させてるんですか?わかる方指摘お願いします。

ちなみに症状が起こる方法

@紫のボタンをを押します。動画再生されたらすぐに
A水色のボタンを押します。動画再生されたらすぐに
B緑のボタンを押します
すると動画は始まらずほかのボタンおしてももう動画見ることは出来ません
ブラウザーをすべて閉じてこのスレットにくると見れるようになります
追記
ちなみにダウンロード途中のみほかのボタンを押した場合のみこの現象が起こります

情報とうあればお願いします。
Response 01
2008年04月24日 (木) 17時22分> よーし 
文字が間違っていました
3日目でって3回目の間違いです;;
Response 02
2008年04月24日 (木) 20時50分> ロイド 
特に問題なく再生出来てます。
適当に選んで切り替えもstopもOKです。
Response 03
2008年04月25日 (金) 02時00分> joy   
よーしさん、ロイドさん、
今晩は。
私の環境:Win XP(SP2)、IE6.0、FlashPlayer Version 9
私の環境では、よーしさんの心配されている、問題が出ました。
下のサンプルは、どうでしょうか?
1)第一フレームの最下層に、Now Loading・・・のMCを配置し、scriptレイヤーには、何も記載せせず、
2)第二フレームのscriptレイヤーに以下を記載してます。

this.stop();//念のため、停止

/*NetConnectionとNetStreamを定番の方法で生成*/
myNetConnection = new NetConnection();
myNetConnection.connect(null);
myStream = new NetStream(myNetConnection);

var playmode:Boolean = true;//トグルスイッチ用の制御変数で、初期値は、true

/*Netstreamの処理*/

/*定番のattachVideo()を使用*/
myVideo.attachVideo(myStream);

/*ビデオのトータル時間を、onMetaDataで取得、これはお好みです*/
var totalTime:Number;
myStream.onMetaData = function(infoObj) {
totalTime = infoObj.duration;//flvに組み込まれている、トータル時間を、onMetaで取得し、変数 totalTimeに代入
//trace(totalTime);
};

/*これも、上との関係で、お好みですが、ビデオの経過時間/トータル時間のダイナミックテキストへの表示と、パーセンテージの表示*/
bar._xscale = 0;
this.onEnterFrame = function() {
mySec.text = Math.floor(myStream.time)+"秒経過"+"/"+Math.floor(totalTime)+"秒中";//経過時間を秒で表示
var percent:Number = Math.floor((myStream.time/totalTime)*100);
myLoaded.text = percent+"%";
//trace(myLoaded.text);
bar._xscale = percent;
};

/*mc1からmc3ボタンの処理*/

mc1.onRelease = function():Void {
myStream.clear();//videoを消失させてから、playmode=trueなら、新たなvideoを読み込む
if (playmode) {
myStream.play("flvs/v1.flv");
}
};

mc2.onRelease = function():Void {
myStream.clear();
if (playmode) {
myStream.play("flvs/v2.flv");
}
};

mc3.onRelease = function():Void {
myStream.clear();
if (playmode) {
myStream.play("flvs/v3.flv");
}
};


/*toggleボタンの処理*/


toggle_mc.onRelease = function():Void {
playmode = !playmode;
if (playmode) {
this.prevFrame();
} else {
this.nextFrame();
}
myStream.pause();
};
http://homepage2.nifty.com/joys/answers/flv/btn_flv.html
Response 04
2008年04月25日 (金) 11時19分> よーし   
ロイドさん、joyさん
おはようございます。

ロイドさん>
まぢですか。みんながみんななる訳じゃないんですね;;もうわからない;;

joyさん>
joyさんの方法でやってみましたが駄目でした。僕の作り方が悪いのかも知りませんが;;
それとhttp://homepage2.nifty.com/joys/answers/flv/btn_flv.html のFLASHを拝見させてもらいました。あの現象は出なかったですが。joyさんのURLにあったFLASHのmc1〜mc3のflvファイルはサイズが小さくmcボタン押したと同時にダウンロード完了してしまってダウンロード途中でほかのmcボタン押すのが困難だったのでもしよければflaファイル提供してくれないでしょうか?僕のサーバーに置いてあるflvで試してみたいです。
Response 05
2008年04月26日 (土) 06時28分> joy 
よーしさん、
おはようございます。
下のurlトップ左に、【下のflaです】と記載されてますので、このflaから、保存してください。
但し、CS3使用してるので、保存は、Flash8 Professionalです。
http://homepage2.nifty.com/joys/answers/flv/btn_flv.html
Response 06
2008年04月26日 (土) 11時08分> よーし 
joyさん>
おはようございます
flaありがとうございます
やはりInternet Explorerのみなりますね;;
Firefoxだとどんだけすばやくボタンおしても普通にできますけどね
なんだろう〜もうわからない><
もしInternet ExplorerとFirefoxお持ちの方1回動作確認お願いします
リンク
Response 07
2008年04月26日 (土) 15時50分> joy 
よーしさん、

1)FirefoxもNetscapeも試しましたが、ボタン移動を高速に行っても、両方、問題なく、再生します。
2)IE6.0に至っては、これ以前に、どのボタンを押しても、一切のFLVが表示されませんでした。

うーん、分からないですね〜
Response 08
2008年04月26日 (土) 16時04分> joy 
よーしさん、
元々の私のスクリプトに誤記がありました。以下で、正常稼動するかどうか分かりませんが、書き換えて、試してみてください。

/*mc1からmc3ボタンの処理*/

mc1.onRelease = function():Void {
myVideo.clear();//前にアップした、flaでは、myStream.clear();と記載してましたが、元々の意図は、新しいflvを読み込む前に、再生中のflvを消失させようという意図でしたので、myVideo.clear();と記載する必要がありました。
Videoを消失させてから、playmode=trueなら、新たなvideoを読み込む
if (playmode) {
myStream.play("flvs/v1.flv");
}
};



mc2.onRelease = function():Void {
myVideo.clear();//同様です。
if (playmode) {
myStream.play("flvs/v2.flv");
}
};

mc3.onRelease = function():Void {
myVideo.clear();//以下、同様です。
if (playmode) {
myStream.play("flvs/v3.flv");
}
};
Response 09
2008年04月26日 (土) 17時08分> よーし   
どうもでーすjoyさんありがとうございます

myStream.clear();をmyVideo.clear();書き換えてやってみました
でも結果は同じでした3個目で見れなくなりました。

気になる記事があったので呼んでみると
Internet Explorer(IE)でファイルをダウンロードする際、同一サーバーから同時にダウンロードできる数(コネクション数)は限られている。IEの[ツール]→[インターネット オプション]→[詳細設定]で「HTTP1.1」と設定されていたらダウンロード数は2まで、「HTTP1.0」ならダウンロード数は4までとなっている。
と書いてました。ダウンロード数をレジストリをいじって増やす事が出来ると書いてあったので
早速試してみると
今回ダウンロード数を6に増やしてみるとやはり見れる回数が増えました。

ってことはやっぱInternet Explorerが、ダウンロード数が通信中と誤判断してるのですかねー??
うーん謎><情報あればおしえてください
Response 10
2008年04月26日 (土) 17時37分> joy 
よーしさん、
そうですか?
知りませんでした!?
記事見ましたが、一般の閲覧者が、レジストリーキーをいじるなど、ほとんど期待できないですから、作り手側が、気をつけなければならないと思いますね。
しかし、こうやって、お互い、情報交換すると、勉強になりますね。私からも、お礼申し上げます。
Response 11
2008年04月26日 (土) 17時47分> よーし 
JOYさん皆様ありがとうでした。
いろんな人の情報はとっても大切ですね。
この質問に関しては僕もいろいろ調べて見ます。
とっても有力な情報である場合ここに書きたいと思います。
あと突然フラッシュ等消えてたらすみません。
Response 12
2008年04月26日 (土) 19時22分> daniwell 
私自身 IE (HTTP1.1) なんですが別段異常はなかったので
再生できない原因自体よくわからないのですが、
私がビデオ切り替えの際によくやる方法について少し解説してみます。

joy さんが解説してくださっている方法とは異なり、FLVPlayback を用います。
(まあ私自身 NetStream はほとんど使ったことがないので詳しくないというのもありますが)

FLVPlayback をステージ上に配置して、インスタンス名(ここでは"flv")を付けます。
そして以下のようなスクリプトを記述します。

-------

flv.activeVideoPlayerIndex = 1;
flv.contentPath = "video1.flv";

flv.activeVideoPlayerIndex = 2;
flv.contentPath = "video2.flv";

flv.activeVideoPlayerIndex = 3;
flv.contentPath = "video3.flv";

b1.onPress = function ( ) {
    flv.visibleVideoPlayerIndex = 1;
    flv.activeVideoPlayerIndex = 1;
    flv.seek(0);
    flv.play();
}

--- 以下、残りのボタン b2, b3 も同様に作成 ---


activeVideoPlayerIndex はそれに数値を設定することで新しくビデオを再生する領域を作成、操作できるようにします。
例えば上のスクリプトの最初の2行、

 flv.activeVideoPlayerIndex = 1;
 flv.contentPath = "video1.flv";

は、1 番目のインデックスを作成、操作可能にし、そのパスに"video1.flv"をセットする、という風になります。
順に、その下の 2, 3 も同様です。

ボタン中の visibleVideoPlayerIndex は、visible から連想できるかもしれませんが、
設定した数値の映像を可視状態にします。

activeVideoPlayerIndex でパスを設定しても、これで可視状態にしないと映像は表示されません。


スクリプト全体の解説としては、
まず必要な映像を全部、それぞれのインデックスにセットし
そして次に、ボタンに対して

 flv.visibleVideoPlayerIndex = 1;    // 可視状態にする
 flv.activeVideoPlayerIndex = 1;    // 操作可能な状態にする
 flv.seek(0);    // (ボタンを押すたびに最初に戻らないのであればこれは不要)
 flv.play();    // 再生する

という風になっています。

あと、敢えて 1 からにしてますが、
activeVideoPlayerIndex, visibleVideoPlayerIndex はデフォルトが 0 なので 0 使ってもよいです。
ただクセで 1 から使ってます(こうすると初っ端から映像が表示される心配がないですし。
Response 13
2008年04月27日 (日) 14時16分> よーし   
daniwellさん情報ありがとうございます
教えていただいたFLVPlaybackで作ってみたんですが
やっぱり駄目でした。3回目で見れなくなりました。
daniwellさんの環境では問題ないと言ってましたがやっぱしIEのオプション設定に関係あるのかなぁー?うーん;;
今回ご指摘ありがとうでした。

このページの先頭へ