0

MVC アプリケーションがあります。メイン ビューには、記録のリストを含むグリッドが表示されます。各録音の横には再生ボタンがあります。実際には、再生ボタンは ActionLink です。その ActionLink の OnClick イベントで、JQuery ダイアログで別のビューを開きます。このビューには Windows Media Player があります。OnClick イベントは Javascript で定義されています (以下のコードを参照)。問題は、ダイアログの Windows メディア プレーヤーを閉じると、録音の再生が続行されることです。メディア プレーヤー オブジェクト $(#mediaplayer).remove() を削除しようとしましたが、削除しても再生されます。Div 全体の InnerHtml を "" に設定しようとしました。Div は削除されますが、メディア プレーヤーは引き続き再生されます。私にとってうまくいった唯一の解決策は、ダイアログのクローズイベントで window.location.reload() を実行することではありません。親ページをリロードします。ユーザーがグリッドの 2 番目のページにいる場合、最初のページに移動するためです。誰でも助けてくれますか?

@Html.ActionLink("Play", "blablabla", new { controller = "Default", @url = MyUrl }, new { @class = "button" })

<script type="text/javascript">

$(document).on("click", ".button", function (e) {
    var url = $(this).attr('href');
    var dialog1 = $('<div id="divPlayer" style="display:none"></div>').appendTo('body');
    dialog1.load(url, {},
        function (responseText, textStatus, XMLHttpRequest) {
            dialog1.dialog({
                close: function (event, ui) {
                    dialog1.empty();
                    dialog1.dialog('destroy').remove();
                },
                draggable: true,
                width: 340,
                height: 105,
                resizable: false,
                closeOnEscape: true,
                modal: true,
            });
        });
    dialog1.unload(url, {});
    return false;

});

</script>

メディア プレーヤーの埋め込みコードは次のとおりです。

<object width="320" height="40"
        classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
        id="mediaplayer1" style="border:none">
    <param name="Filename" value="@Model.URL">
    <param name="AutoStart" value="True">
    <param name="ShowControls" value="True">
    <param name="ShowStatusBar" value="False">
    <param name="ShowDisplay" value="False">
    <param name="AutoRewind" value="True">
    <embed id='altMediaPlayer' type="application/x-mplayer2"
           pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/"
           width="320" height="40" src="@Model.URL"
           filename="@Model.URL" autostart="True"
           showcontrols="True" showstatusbar="False"
           showdisplay="False" autorewind="True">
    </embed> 
</object>
4

1 に答える 1