如何让我的PHP应用程序重新使用相同的窗口播放音乐?

时间:2009-02-23 07:21:12

标签: php html xml

以下是我的播放器的代码,该代码将根据用户选择的歌曲自动生成playlist.xml文件。我将此文件保存为player.php在我的根文件夹中,并以我给出的格式:

<form method="post" action="/player.php" target="_blank">

因此该播放器根据所选内容打开并播放歌曲。

但问题是,当用户在新窗口中播放先前选择的歌曲时再次选择不同的歌曲时,所选择的新歌曲将在另一个窗口中打开,即现在打开两个播放器窗口。

实际上,我希望第二个选定的歌曲将在已经打开的同一个窗口中播放。您可以通过播放歌曲来查看我网站上发生的情况:http://www.musicking.in/hindi-songs/69.html

<html>
<body>
<?php
  if(isset($_POST["song"])&& $_POST['song'] != "") {
    $song = $_POST["song"];
  }
  else { $song=array(); }

  for ($i="0"; $i<count($song); $i++) { 
    //echo  $song[$i];
  }

  //start of new php codep
  // create doctype

  //$array = array(
  //  'song.mp3','song.mp3','song.mp3',
  //);

  $dom = new DOMDocument("1.0");

  // display document in browser as plain text 
  // for readability purposes
  header("Content-Type: text/plain");
  // create root element
  $root = $dom->createElement("xml");
  $dom->appendChild($root);
  $i = "1";
  foreach ($song as $counter) {
    // create child element
    $song = $dom->createElement("track");
    $root->appendChild($song);

    $song1 = $dom->createElement("path");
    $song->appendChild($song1);
    // create text node
    $text = $dom->createTextNode($counter);
    $song1->appendChild($text); 

    $song1 = $dom->createElement("title");
    $song->appendChild($song1);

    $text = $dom->createTextNode("song ".$i);
    $song1->appendChild($text); 
    $i++;
  }

  // save and display tree
  //echo $dom->saveXML();
  $dom->save("playlist.xml");
?>

<script type="text/javascript" src="swfobject.js"></script>

<div id="flashPlayer">
  This text will be replaced by the flash music player.
</div>


<script type="text/javascript">
   var so = new SWFObject("playerMultipleList.swf", "mymovie", "295", "200", "7", "#FFFFFF");  
   so.addVariable("autoPlay","yes")
   so.addVariable("playlistPath","playlist.xml")
   so.write("flashPlayer");
</script>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

据我所知,你只能使用javascript执行此操作...而且还有一个小小的黑客可以检测是否打开了弹出窗口以及是否向它发送了javascript请求。

答案 1 :(得分:0)

我知道这可能不是您正在寻找的“FIX”,但请尝试在闪存变量中指定目标。

我认为指定_self

可能有所帮助

只是一个想法

答案 2 :(得分:0)

尝试使用尺寸;)

<form method="post" action="/player.php" target="popup-player" target="playerTargetWin" onSubmit="window.open('about:blank','playerTargetWin','width=300,height=300')">
    <p>
        <label for="textfield">Type something in the box:</label>
        <input type="text" name="textfield" id="textfield" />
    </p>
    <p>
        <input type="submit" value="Submit" />
    </p>
</form>