Как мне заставить мое PHP-приложение повторно использовать одно и то же окно для воспроизведения музыки? - PullRequest
0 голосов
/ 23 февраля 2009

Ниже приведен код для моего проигрывателя, который автоматически сгенерирует файл 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 ]

1 голос
/ 31 марта 2009

Вы можете сделать это только с помощью javascript, насколько я знаю ... и есть небольшой взлом, чтобы обнаружить, было ли открыто всплывающее окно и отправляло ли ему запросы javascript.

0 голосов
/ 27 марта 2009

Примерь размер;)

<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>
0 голосов
/ 24 февраля 2009

Я знаю, что это, вероятно, не та "FIX", которую вы ищете, но попробуйте указать цель в ваших флэш-переменных.

Я думаю, что это может помочь указать _self

просто мысль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...