小编ste*_*enJ的帖子

C#NAudio - 改变音频播放位置仍然会占用旧位置的小缓冲区

我正在努力用C#和WPF制作一个基本的MP3播放器,以及NAudio.我最近添加了一个滑块,可以跟踪歌曲中的当前位置,并允许您将其拖动到不同的位置,Thumb.DragCompleted然后它将歌曲的位置设置为您拖动它的位置.

这一切都很好,所有,除非我让它跳到新位置,它仍然会在更改前的1/5左右播放旧位置.这是最引人注目的,例如当歌手正在唱"aaa"时,你停下来,拖到他唱"ooo"的地步,然后再次播放,你会听到"aa-ooo".这只会让它听起来非常可怕.

所以我认为音频播放只剩下一个小的"缓冲区",它坚持在继续播放之前播放.有没有办法清除这个缓冲区?还是我设置错误的位置?

我正在使用a WaveOut waveOutDevice和a AudioFileReader audioFileReader.调用滑块sldrPlaybackProgress.
我试图以两种不同的方式改变歌曲中的位置:

第一种方法:

audioFileReader.CurrentTime = new TimeSpan(0, (int)(Math.Floor(sldrPlaybackProgress.Value / 60)), (int)(Math.Floor(sldrPlaybackProgress.Value % 60))); 
Run Code Online (Sandbox Code Playgroud)

第二种方法:

audioFileReader.Position = (long)(sldrPlaybackProgress.Value * audioFileReader.WaveFormat.AverageBytesPerSecond);
Run Code Online (Sandbox Code Playgroud)

这些单独或甚至两者组合仍导致问题持续存在.

c# wpf mp3 position naudio

5
推荐指数
1
解决办法
1622
查看次数

Mozilla WebExtensions contextMenus.create无法正常工作

我正在尝试为FireFox开发带有contextMenu的WebExtension。目前,我只有两个文件,没有任何实际功能。问题是,即使使用Mozilla开发人员网络中的示例代码,它似乎也无法正常工作-因此,我认为它已包含在清单中,但似乎找不到该问题。

这是我的manifest.json文件:

{
  "manifest_version": 2,
  "name": "FullWindow",
  "version": "1.0",

  "description": "Test plugin.",

  "permissions": ["contextMenus"],

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["fullwindow.js"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的fullwindow.js文件:

console.log("Plugin loaded!");

browser.contextMenus.create({
  id: "radio-green",
  type: "radio",
  title: "Make it green",
  contexts: ["all"],
  checked: false
}, onCreated);

function onCreated() {
  if (browser.runtime.lastError) {
    console.log("error creating item:" + browser.runtime.lastError);
  } else {
    console.log("item created successfully");
  }
}

console.log("Test!");
Run Code Online (Sandbox Code Playgroud)

这里的问题是,除了初始的“插件已加载!”之外,我没有任何控制台日志。并且也没有得到我的上下文菜单。

javascript firefox-addon-webextensions

1
推荐指数
1
解决办法
329
查看次数