$transportState = 'Play'; } else { if ($transportStateResponse == "STOPPED") { $transportState = 'Stop'; } else { $transportState = 'unknown'; } } } $actionResponse = sendUpnpAction($cmd_getpositioninfo, $address, $port); $xmlParser = xml_parser_create("UTF-8"); xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8"); xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index); xml_parser_free($xmlParser); // print_r($actionResponseArray); $reltimeResponse = getValueOfResponse($actionResponseArray, "RELTIME"); $durationResponse = getValueOfResponse($actionResponseArray, "TRACKDURATION"); $trackMetaDataResponse = getValueOfResponse($actionResponseArray, "TRACKMETADATA"); // print_r($trackMetaDataResponse); $xmlParser = xml_parser_create("UTF-8"); xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8"); xml_parse_into_struct($xmlParser, $trackMetaDataResponse, $actionResponseArray, $index); xml_parser_free($xmlParser); // print_r($actionResponseArray); $title = getValueOfResponse($actionResponseArray, "TITLE"); $artist = getValueOfResponse($actionResponseArray, "ALBUMARTIST"); $album = getValueOfResponse($actionResponseArray, "ALBUM"); // // create JSON response // print_r("{\"volume\" : " . $volume . ", \"muteState\" : " . $muteState . ", \"transportState\" : \"" . $transportState . "\" , \"reltimeResponse\" : \"" . $reltimeResponse . "\" , \"durationResponse\" : \"" . $durationResponse . "\" , \"title\" : \"" . $title . "\" , \"artist\" : \"" . $artist . "\" , \"album\" : \"" . $album . "\" , \"error_msg\" : \"" . $error_msg . "\"}");
CONTENT-TYPE: text/xml; charset="utf-8" SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse" <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1"><ObjectID>SQ:</ObjectID><BrowseFlag>BrowseDirectChildren</BrowseFlag><Filter></Filter><StartingIndex>0</StartingIndex><RequestedCount>100</RequestedCount><SortCriteria></SortCriteria></u:Browse></s:Body></s:Envelope>'; $actionResponse = sendUpnpAction($cmd_playlist, $address, $port); //echo "actionResponse xml: "; //print_r($actionResponse); //echo "</br>'"; $xmlParser = xml_parser_create("UTF-8"); xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8"); xml_parse_into_struct($xmlParser, $actionResponse, $actionResponseArray, $index); xml_parser_free($xmlParser); //print_r($actionResponseArray); //print_r($index); $totalMatches = getValueOfResponse($actionResponseArray, "TOTALMATCHES"); $playListsMeta = getValueOfResponse($actionResponseArray, "RESULT"); $xmlParser = xml_parser_create("UTF-8"); xml_parser_set_option($xmlParser, XML_OPTION_TARGET_ENCODING, "UTF-8"); xml_parse_into_struct($xmlParser, $playListsMeta, $playListsArray, $index); xml_parser_free($xmlParser); //print_r($playListsArray); $arraySize = count($playListsArray); $playLists = array(); $j = 0; for ($i = 0; $i < $arraySize; $i++) { $tag = $playListsArray[$i]['tag']; if ($tag == "DC:TITLE") { $playLists[$j]['name'] = $playListsArray[$i]['value']; $playLists[$j]['url'] = $playListsArray[$i + 1]['value']; $playLists[$j]['urlenc'] = urlencode((string) $playListsArray[$i + 1]['value']); $j++;