मैं दूरस्थ सर्वर से एक WAV फ़ाइल डाउनलोड करने के लिए PhantomJS और HorsemanJS का उपयोग कर रहा हूं। हालांकि जब फ़ाइल बेस 64 एन्कोडेड होती है और एक नई फ़ाइल में लिखी जाती है तो यह गुणवत्ता खो देती है जो इसे अनुपयोगी बनाती है। ऑडियो वहां है लेकिन इसके विकृत जो मुझे लगता है कि यह एक एन्कोडिंग समस्या है। मैं नोड v5हॉर्समन और फैंटॉमजेएस का उपयोग करके एक वैव फ़ाइल डाउनलोड करना डेटा गुणवत्ता
का उपयोग कर उबंटू 14.04 पर चल रहा हूं नीचे मेरी 64 स्क्रिप्ट एन्कोडिंग को बेहतर बनाने के लिए कोई स्क्रिप्ट है?
var Horseman = require('node-horseman');
var horseman = new Horseman({cookiesFile:'./cookiejar'});
var fs = require('fs');
horseman.on("urlChanged", function(url){
console.log(url);
});
horseman.on('consoleMessage', function(msg){
console.log(msg);
});
horseman
.userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
.open('https://remoteserver.com/audo.aspx?guid=01439900-5361-4828-ad0e-945b56e9fe51')
.waitForNextPage()
.type('input[name="password"]', process.env.PASS)
.type('input[name="username"]', process.env.UN)
.click("button:contains('Login')")
.waitForNextPage()
.evaluate(function(){
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/";
function base64encode(str) {
var out, i, len;
var c1, c2, c3;
len = str.length;
i = 0;
out = "";
while(i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt((c1 & 0x3) << 4);
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if(i == len)
{
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt((c2 & 0xF) << 2);
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> 2);
out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
}
var url = $("a:contains('Uncompressed file')").attr("href");
console.log(url);
var out;
$.ajax({
'async' : false,
'url' : url,
'success' : function(data, status, xhr) {
console.log(status);
console.log(xhr.getResponseHeader('Content-Type'));
out = base64encode(data);
}
});
return out;
})
.then(function(out){
fs.writeFile('./mydownloadedfile.txt', out, 'base64', function(){
return horseman.close();
});
});
सामग्री प्रकार वापस के रूप में audio/wav
फ़ाइल मैन्युअल रूप से डाउनलोड किया है और एक ही खिलाड़ी यह ठीक नाटकों के माध्यम से खेला जाता है, तो आता है, यह केवल तब होता है जब यह इस प्रक्रिया के माध्यम से चला जाता है।
यह अधिक जानकारी की आवश्यकता है। विशेष रूप से, क्या आप फ़ाइल डाउनलोड कर सकते हैं और इसे सहेज सकते हैं? यह गलत समय अनुक्रमण को खींचने वाले कोडेक की तरह लगता है, लेकिन एक नमूना WAV फ़ाइल की आवश्यकता है। –
आप फ़ैंटॉमजेएस के बजाय कैस्परजेएस के साथ कम कोड वाली फ़ाइल डाउनलोड कर सकते हैं और आपको बेस 64 के माध्यम से वर्कअराउंड का उपयोग नहीं करना पड़ेगा। – st2erw2od
@ st2erw2od मैं कैस्परजेएस में देखूंगा लेकिन जब मैंने मूल रूप से जांच की थी तो यह स्टैंडअलोन था इसलिए मैं फ़ाइल (एस 3 पर स्टोर) – thegogz