gpt4 book ai didi

c# - 如何从 c# 代码、web 或 winform 获取图像 src 以进行更新

转载 作者:太空宇宙 更新时间:2023-11-03 13:26:20 26 4
gpt4 key购买 nike

我对编程还很陌生,我正在尝试制作一些有用的程序来帮助我和我爸爸学习吉他。我想要做的是在屏幕上显示一个音符名称(一个图像文件),然后播放音符(midi)。 (这是学习指板音符的练习)。所以我有一组音符,随机选择一个,我想将 id="Image1"的 src 更改为音符图像 (/images/(notename).png),然后播放音符。问题是,音符播放,然后图像改变。我认为这与回发有关,但不太确定。这是代码:

public void  StartQuiz(List<string> selectedeNotes, int timeDuration, string sharpsFlats)
{
string[] notesForQuiz = BuildNotes(sharpsFlats);
string theNote = getRandomNote(notesForQuiz);
string imageURL = @"/images/" + theNote + ".png";
Image1.ImageUrl = imageURL;
//Image1.Attributes["src"] = ResolveUrl(imageURL);
//string str = "<script>document.getElementById('Image1').src='"+imageURL+"'; </script>";
for (int i = 0; i < 4; i++)
{
playNote(theNote, "E");
}
}

我尝试让 c# 调用 javascript 函数,但我发现这行不通。任何帮助将不胜感激。如果我没有发布所有信息,我很抱歉。

编辑:感谢您建议使用 javascript 来完成大部分工作,而不是继续尝试在 Web 中使用 C# 来完成。我已经用 c# 编写了逻辑程序,所以我认为将它带到 winform 中会很容易。不知何故(我认为这是一个回发问题),直到音调停止后图像仍然不会更新。即使对图像的更改是在调用音调之前:

   public void  StartQuiz(List<string> selectedeNotes, int timeDuration, string nosharpsFlats)
{

string[] notesForQuiz = BuildNotes(nosharpsFlats);

for (int x = 0; x < 1; x++)
{
string theNote = getRandomNote(notesForQuiz);
noteImage.ImageLocation = @"..\..\images\D.png";

for (int i = 0; i < 1; i++)
{
playNote(theNote, "E");
}
}
}

卧槽。我硬编码了一个特定的注释来尝试调试。

我将从 JS 版本开始。出于某种原因,我决定使用 C#。

编辑#2:我通过添加 Application.DoEvents(); 修复了它图像位置更改后。似乎我可能需要对线程做些事情,但我不确定。

最佳答案

尝试更改以从 midi.js 播放 midi 声音 midi .

然后调用js函数更新image1.scr只播放音符

js 函数:

function changeimg(imgurl,callback){
Image1.src=imgurl;
callback();
}
function playnote(note){
for(int i=0;i<3;i++){
//play here
}
}

代码隐藏:

string script = string.Format("var myimg = '{0}'; changeimg(myimg,playnote);", imageURL);
if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
ClientScript.RegisterClientScriptBlock(typeof(_Default), "myScript", script, true);
}

关于c# - 如何从 c# 代码、web 或 winform 获取图像 src 以进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com