object Main extends App {
val p1 = Promise[Option[String]]()
val p2 = Promise[Option[String]]()
val f1 = p1.future
val f2 = p2.future
val res = (for{
file1Opt <- f1
file2Opt <- f2
file1 <- file1Opt
file2 <- file2Opt
} yield {
combineFiles(file1, file2)
}).fallbackTo(Future.successful("Files not found"))
Thread.sleep(2000)
println("XXXXXXXXXXXXXXXXXXX")
p1.success(Some("file one"))
p2.success(Some("file two"))
val finalData = res.map(s =>
s + " " + "add more data to the file"
)
finalData.map(println(_))
def combineFiles(f1: String, f2: String): String = {
f1 + " …Run Code Online (Sandbox Code Playgroud) 我需要从一个字符串生成一个SHA-256校验和,该字符串将作为get参数发送.
如果找到此链接以生成校验和.
像这样生成校验和:
val digest = MessageDigest.getInstance("SHA-256");
private def getCheckSum() = {
println(new String(digest.digest(("Some String").getBytes(StandardCharsets.UTF_8))))
}
Run Code Online (Sandbox Code Playgroud)
打印校验和类似于:
*??¼?]9AòdJb:#?o6?T?B5C?¼O~??àÿG
Run Code Online (Sandbox Code Playgroud)
我们需要发送它的API说校验和应该如下所示:
45e00158bc8454049b7208e76670466d49a5dfb2db4196
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
请指教.谢谢.
我正在学习webgl,并且正在阅读本教程,以从mp3文件中提取频率,以便可以对其进行可视化。
我有给定mp3文件的地方播放文件。但是,如果我尝试使用createMediaElementSource连接到AudioContext的分析仪来获取频率数据,则它将无法正常工作。
JS:
window.onload = function(e) {
document.getElementById('music-files').addEventListener('change', selectMusic, false);
}
var musicFiles = [];
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var audio;
var audioSrc;
var analyser;
var bufferLength;
var dataArray;
function selectMusic(e) {
musicFiles = e.target.files;
}
function getFreq(){
requestAnimationFrame(getFreq);
analyser.getByteFrequencyData(dataArray);
console.log(">>>>>>>>>>>>>>>");
console.log(dataArray[240])
}
function play(){
var num = Math.floor(Math.random()*musicFiles.length);
console.log("playing=" + num);
var musicFile = URL.createObjectURL(musicFiles[num]);
$("#music").attr("src", musicFile);
document.getElementById('music').play();
audio = document.getElementById('music');
audioSrc = audioCtx.createMediaElementSource(audio);
analyser = audioCtx.createAnalyser();
audioSrc.connect(analyser);
bufferLength …Run Code Online (Sandbox Code Playgroud)