小编Jak*_*son的帖子

跨平台,跨浏览器的方式从Javascript播放声音?

我正在编写一个dhtml应用程序,用于创建系统的交互式模拟.模拟的数据是从另一个工具生成的,并且已经有非常大量的遗留数据.

模拟中的一些步骤要求我们播放音频的"画外音"剪辑.我无法在多个浏览器中找到一种简单的方法来实现这一点.

Soundmanager2非常接近我的需要,但它只播放mp3文件,遗留数据也可能包含一些.wav文件.

有没有人有任何其他可能有帮助的图书馆?

javascript audio cross-platform dhtml cross-browser

78
推荐指数
6
解决办法
6万
查看次数

在TeamCity构建步骤中使用git命令

我的一个TeamCity v7.0构建项目依赖于在当前开发分支和主分支之间使用diff来确定需要运行的内容.我写了一个小脚本,使用类似的东西:

git diff origin/master..origin/QA --name-only --diff-filter=AM | DoSomethingWithThoseFiles
Run Code Online (Sandbox Code Playgroud)

不幸的是,构建日志表明它git diff不起作用.当我进入这个项目的buildAgent/work目录时,我发现没有.git文件夹,所以它无法执行所需的git操作.

我已经把TW-15873中提到teamcity.git.use.local.mirrors=truebuildAgent.properties文件放入了文件中,但这似乎没有任何帮助.

我可以做些什么来在脚本中为我的构建步骤更改两个分支之间的文件列表?

git teamcity teamcity-7.0

41
推荐指数
2
解决办法
2万
查看次数

使用FFMPEG将视频可靠地转换为mp4,用于iphone/ipod和flash播放器

我需要转换视频以用于flash播放器和iphone/ipod touch.我在ffmpeg中使用以下批处理脚本:

@echo off
ffmpeg.exe -i %1 -s qvga -acodec libfaac -ar 22050 -ab 128k -vcodec libx264 -threads 0 -f ipod %2
Run Code Online (Sandbox Code Playgroud)

这总是输出一个mp4文件,我总是可以在我的电脑上播放它.我的iphone 3GS上的视频似乎也很好用.但是对于一些输入文件,它不适用于较旧的iPhone版本(3G和iPod touch).

这是来自一个这样的文件的ffmpeg输出:

D:\ffmpeg>encode.bat d:\temp\recording.flv d:\temp\out.m4v
FFmpeg version SVN-r18709, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-memalign-hack --prefix=/mingw --cross-prefix=i686-ming
w32- --cc=ccache-i686-mingw32-gcc --target-os=mingw32 --arch=i686 --cpu=i686 --e
nable-avisynth --enable-gpl --enable-zlib --enable-bzlib --enable-libgsm --enabl
e-libfaac --enable-libfaad --enable-pthreads --enable-libvorbis --enable-libtheo
ra --enable-libspeex --enable-libmp3lame --enable-libopenjpeg --enable-libxvid -
-enable-libschroedinger --enable-libx264
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.27. 0 / …
Run Code Online (Sandbox Code Playgroud)

iphone ffmpeg video-encoding

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

ASP.NET页面说我需要引用一个不存在的程序集!

我的asp.net站点必须在几个客户端服务器上运行.它对大多数人来说都很好,但有几个人在几页上遇到了错误信息:

编译器错误消息:CS0012:类型"MetaNameValuePair"在未引用的程序集中定义.您必须添加对程序集"App_Code.t_3vcono,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null"的引用.

"MetaNameValuePair"类型实际上是在我的App_Code文件夹中的.cs文件中定义的,而不是外部程序集.它是否无法编译.cs文件?

asp.net compilation

11
推荐指数
2
解决办法
1万
查看次数

简单的ASP.NET MVC视图,无需编写控制器

我们正在构建一个代码非常少的网站,它主要是提供一堆静态页面.我知道随着时间的推移会发生变化,我们会想要交换更多动态信息,因此我决定继续使用ASP.NET MVC2和Spark视图引擎构建Web应用程序.将有一些控制器必须进行实际工作(如/ products区域),但大多数都是静态的.

我希望我的设计师能够构建和修改网站,而无需每次他们决定添加或移动页面时都要求我编写新的控制器或路由.因此,如果他想添加一个" http://example.com/News "页面,他只需在Views下创建一个"News"文件夹,并在其中放置一个index.spark页面.然后,如果他决定要一个/新闻/社区页面,他可以删除该文件夹中的community.spark文件并让它工作.

通过使控制器覆盖HandleUnknownAction,我可以在没有特定操作的情况下获得视图,但我仍然需要为每个文件夹创建一个控制器.每次他们决定向网站添加区域时,必须添加一个空控制器并重新编译似乎很愚蠢.

有没有办法让这更容易,所以我只需要编写一个控制器并重新编译,如果有实际的逻辑要做?某种"主"控制器将处理没有定义特定控制器的任何请求?

spark-view-engine asp.net-mvc-2

10
推荐指数
1
解决办法
2万
查看次数

将Moq与Windsor一起使用 - Moq.Mock类型的对象[IFoo]无法转换为IFoo

我正在尝试建立一些Moq存储库,以测试我的服务与Castle Windsor作为我的IOC.Mu服务依赖于IFoo,所以我创建了一个实现IFoo的moq实例并将其注入容器中,如下所示:

_container.AddComponent("AutoBill", 
  typeof (AutoBillService), typeof (AutoBillService));

var mockUserRepository = new Mock<IUserRepository>();
var testUser = new User()
   {
     FirstName = "TestFirst",
     LastName = "TestLast", 
     UID=1
   };
mockUserRepository.Setup(repo => repo.GetUser(testUser.UID))
   .Returns(testUser);

_container.Kernel.AddComponentInstance("UserRepository", 
   typeof(IUserRepository), mockUserRepository);

var service = _container.Resolve<AutoBillService>(); //FAIL
Run Code Online (Sandbox Code Playgroud)

这样做会给我一个例外:System.ArgumentException:'Moq.Mock`1 [IUserRepository]'类型的对象无法转换为'IUserRepository'类型

谁能看到我做错了什么?

nunit castle-windsor moq

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

MSBuild未从导入的项目运行BuildDependsOn任务

我有一个导入的MSBuild项目(appconfig.transformation.targets),它定义了一些任务并将它们放在BuildDependsOn属性中.我已将此文件放在解决方案的顶级文件夹中(Projects\LibrariesSolution\appconfig.transformation.targets):

<PropertyGroup>
  <BuildDependsOn>
    TransformWebConfig;
    OverrideAppConfigWithTargetPath;
    $(BuildDependsOn);
    CopyTransformedConfig
  </BuildDependsOn>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
Run Code Online (Sandbox Code Playgroud)

我在子文件夹中的解决方案内的每个csproj文件中导入此项目.所以Projects\LibrariesSolution\Project1\Project1.csproj有这样的东西:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
  <Import Project="..\appconfig.transformation.targets" />
  ... the rest of the csproj stuff ...
Run Code Online (Sandbox Code Playgroud)

我这样启动构建:

cd LibrariesSolution
c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /t:Clean /p:Configuration=Release Project1\Project1.csproj
c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /t:Build /p:Configuration=Release Project1\Project1.csproj
Run Code Online (Sandbox Code Playgroud)

但是,BuildDependsOn中列出的目标似乎没有被调用.当然输出在这里显示得过于冗长,但"TransformWebConfig"并没有出现在输出中的任何地方.没有显示错误.可能有什么不对?我该怎么做才能进一步排除故障?

msbuild

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

从命令行安装VS.NET扩展

有没有办法从命令行安装VS.NET扩展?我正在使用vagrant和powershell设置开发虚拟机进行配置,并且希望能够自动安装一些我最喜欢的扩展.

powershell visual-studio

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

我在git-svn中标记,现在我的主人总是提交给svn标签!

我有一个基本的git-svn设置:

   [core]
           repositoryformatversion = 0
           filemode = false
           bare = false
           logallrefupdates = true
           symlinks = false
           ignorecase = true
           hideDotFiles = dotGitOnly
           autocrlf = true
   [svn-remote "svn"]
           url = https://svnserver:8443/svn/Project
           fetch = trunk:refs/remotes/trunk
           branches = branches/*:refs/remotes/*
           tags = tags/*:refs/remotes/tags/*
Run Code Online (Sandbox Code Playgroud)

我通过发出以下内容从主干(git中的master)创建了一个标记:

git svn tag -m "3.6.1" 3.6.1
Run Code Online (Sandbox Code Playgroud)

这在/tags/3.6.1的svn中创建了一个新标签.另外,我在远程分支中看到了一个新的/remotes/tags/3.6.1.

在某些时候,我会从3.6.1远程检出一个本地分支并进行一些更改.然后我将它们合并到主人(我认为这是一个很大的错误).所以我的主人似乎认为它有3.6.1标签的一些历史.

现在,每当我向主人提交一些内容然后dcommit,他们就会转到3.6.1标签!

jakes@mymachine /cygdrive/d/Projects/Project (master)
$ git svn dcommit
Committing to https://svnserver:8443/svn/Project/tags/3.6.1 ...
    M       fileThatChanged.js
Committed r6027
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以让事情再次顺利进行?

git git-svn

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

在运行时动态调用Moq Setup()

我想创建一个工厂,为我的单元测试创​​建常用的模拟对象.我已经设法设置我的测试,所以我可以模拟Linq2Sql DataContext并返回内存表而不是命中数据库.我这样设置:

_contactsTable = new InMemoryTable<Contact>(new List<Contact>());
_contactEmailsTable = new InMemoryTable<ContactEmail>(new List<ContactEmail>());
//  repeat this for each table in the ContactsDataContext

var mockContext = new Mock<ContactsDataContext>();
mockContext.Setup(c => c.Contacts).Returns(_contactsTable);
mockContext.Setup(c => c.ContactEmails).Returns(_contactEmailsTable);
// repeat this for each table in the ContactsDataContext
Run Code Online (Sandbox Code Playgroud)

如果DataContext包含很多表,这会变得乏味,所以我认为使用反射从DataContext获取所有表的简单工厂方法可能会有所帮助:

public static DataContext GetMockContext(Type contextType)
{
    var instance = new Mock<DataContext>();
    var propertyInfos = contextType.GetProperties();
    foreach (var table in propertyInfos)
    {
        //I'm only worried about ITable<> now, otherwise skip it
        if ((!table.PropertyType.IsGenericType) ||
            table.PropertyType.GetGenericTypeDefinition() != typeof (ITable<>)) continue; …
Run Code Online (Sandbox Code Playgroud)

reflection moq linq-to-sql

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