我目前正在编写一个应用程序,允许用户安装某种形式的应用程序(可能是Windows服务),该应用程序将在其PC上打开一个端口,并在硬盘上给出特定目的地,然后将能够流式传输mp3文件.
然后,我将有另一个应用程序连接到服务器(作为用户的PC),并能够通过连接到该PC(远程)来给出端口数据浏览托管数据,并将mp3文件从服务器流式传输到应用程序
我在网上找到了一些教程,但其中大部分是关于C#中的文件服务器,他们下载允许你下载整个文件.我想要的是流式播放一个mp3文件,以便在下载一定数量的字节时开始播放(即,当它被缓冲时)
我该如何完成这项任务?我需要知道具体是怎么写的这个应用程序(我会变成一个Windows服务以后)将侦听一个指定端口的流文件上,这样我就可以用类似的东西访问文件:http://<serverip>:65000/acdc/wholelottarosie.mp3和希望能够在WPF中传输该文件MediaPlayer.
[更新]
我下面这个教程关于建立一个文件服务器和从服务器到客户端发送的文件.我必须做些什么吗?
[更新]
目前正在阅读这篇文章:使用C#从流中播放音频,我认为看起来如何播放流媒体文件非常有前景; 但我仍然不知道如何实际从服务器流式传输文件.
是否可以将文件(从我的普通文件系统)读入iPhone模拟器上运行的iPhone应用程序?
我知道iPhone本身没有(用户可访问的)文件系统,但这只是用于测试,只能在模拟器中运行.
该文件将是一个文本文件,可以在应用程序运行时进行编辑,每次调用一个方法时都会读取该文件.
我一直在深入研究LINQ,而我正在努力挖掘这个lambda表达式业务.我只是没有看到语法的一些细微差别的好处.首先,在我看来,lambda表达式大多只是使用Where子句的另一种方式.为什么我不会只使用Where子句呢?lambda表达式更有效吗?
是否只是另一个语法上的补充,从另一个组中吸引程序员在C#中感觉更舒服?还有其他更好的用于lambda表达式的用例,我还没有接触过吗?
要检查一个元素是否是JavaScript中的数组,我一直使用Crockford的函数(The Good Parts第61页):
var is_array = function (value) {
return value &&
typeof value === 'object' &&
typeof value.length === 'number' &&
typeof value.splice === 'function' &&
!(value.propertyIsEnumerable('length'));
}
Run Code Online (Sandbox Code Playgroud)
但是如果我没弄错的话,最近谷歌的一些人已经找到了一种如何测试JavaScript数组的新方法,但我不记得我在哪里阅读它以及该功能是如何进行的.
谁能指点我的解决方案吗?
[更新]
谷歌显然发现这个的人叫马克米勒.
现在我也从这篇文章中读到,他的解决方案也很容易破解:
// native prototype overloaded, some js libraries extends them
Object.prototype.toString= function(){
return '[object Array]';
}
function isArray ( obj ) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
var a = {};
alert(isArray(a)); // returns true, expecting false;
Run Code Online (Sandbox Code Playgroud)
所以,我想,有什么方法可以真正检查数组的有效性吗?
看看下面的代码:
Number.prototype.isIn = function () {
for (var i = 0, j = arguments.length; i < j; ++i) {
if (parseInt(this, 10) === arguments[i]) {
return true;
}
}
return false;
};
var x = 2;
console.log(x.isIn(1,2,3,4,5)); // <= 'true'
console.log(2.isIn(1,2,3,4,5)); // <= Error: 'missing ) after argument list'
Run Code Online (Sandbox Code Playgroud)
为什么当它是一个变量时,代码才能正常工作,但是当它是一个数字文字时,它会失败?
而且,奇怪的是,为什么以下行有效?
console.log((2).isIn(1,2,3,4,5)); // <= 'true'
Run Code Online (Sandbox Code Playgroud)
在上面这一行中,我基本上将括号中的文字括起来.
说我有以下内容:
class Base {
public Base (int n) { }
public Base (Object1 n, Object2 m) { }
}
class Derived : Base {
string S;
public Derived (string s, int n) : base(n) {
S = s;
}
public Derived (string s, Object1 n, Object2 m) : base(n, m) {
S = s; // repeated
}
}
Run Code Online (Sandbox Code Playgroud)
注意我在Derived的两个重载中都需要形式参数n,因此我必须重复这一N = n;行.
现在我知道这可以封装到一个单独的方法中,但是你仍然需要来自两个重载的相同的两个方法调用.那么,是否有一种更"优雅"的方式来做到这一点,也许是通过this结合使用base?
这样我可以有一个私有构造函数接受一个参数s,另外两个重载可以调用那个......或者这可能与拥有一个单独的私有方法相同?
为了在TreeViewItem中存储一个对象(比如一个类的实例),我当前正在将该对象存储在TreeViewItems中Header,然后覆盖ToString该类的方法,以便它显示正确的字符串头; 然后我在活动期间将物体投回.
这是实现这种事情的正确方法,还是有更好,更正确的方法?
我想在LaTeX中生成以下内容:
1. Item
2. Item
3a. Item
3b. Item
4. Item
5. Item
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试过使用嵌套enumerate环境,但是我在实现不同的编号时遇到了问题.
我怎样才能在LaTeX中完成上述操作?
我的代码的要点如下:
// Play the first beat
audio.PlayOneShot(beat);
// Show 1st heartbeat border flash
TweenAlpha.Begin(heartbeatPanel.gameObject, 0.1f, currentStress);
yield return new WaitForSeconds(0.1f);
TweenAlpha.Begin(heartbeatPanel.gameObject, 0.5f, 0);
yield return new WaitForSeconds(interval);
// Play the second beat
audio.PlayOneShot(beat);
// Show 2nd heartbeat border flash
TweenAlpha.Begin(heartbeatPanel.gameObject, 0.1f, currentStress);
yield return new WaitForSeconds(0.1f);
TweenAlpha.Begin(heartbeatPanel.gameObject, 0.5f, 0);
yield return new WaitForSeconds(interval * 2);
Run Code Online (Sandbox Code Playgroud)
现在我想将上面的代码分成一个带有2个调用的IEnumerator方法.
这就是我想出的:
StartCoroutine(PlayBeat(currentStress, interval));
StartCoroutine(PlayBeat(currentStress, interval * 2));
// ...
IEnumerator PlayBeat(float currentStress, float interval)
{
audio.PlayOneShot(beat);
TweenAlpha.Begin(heartbeatPanel.gameObject, 0.1f, currentStress);
yield return new WaitForSeconds(0.1f);
TweenAlpha.Begin(heartbeatPanel.gameObject, …Run Code Online (Sandbox Code Playgroud) c# ×4
arrays ×2
javascript ×2
wpf ×2
audio ×1
casting ×1
cocoa-touch ×1
enumerate ×1
extend ×1
file ×1
ienumerator ×1
image ×1
inheritance ×1
iphone ×1
lambda ×1
latex ×1
linq ×1
objective-c ×1
pixels ×1
streaming ×1
syntax ×1
treeview ×1
where-clause ×1
yield-return ×1