MediaPlayer从HTTP URL流式传输时,我无法恢复弹性.
如果我开始播放文件,但随后丢弃连接(例如飞行模式),则MediaPlayer#OnErrorListener生成what=1, extra=-17然后不久what=-38, extra=0.
我没有在API中看到这个表示的文档,除了extra是"通常依赖于实现".我正在使用HTC Hero(好吧,它是T-Mobile UK的G2 Touch).
其他人是否获得相同的值,并且可以安全地捕获这些值,因为连接已经消失了吗?
连接重新出现时,如何才能最好地恢复?(保存当前的搜索偏好,并每5秒重试一次?)
我怎么知道设备何时决定开始播放它正在缓冲的内容 - 是否有回调(除了轮询isPlaying())?
此外,我不完全确定onBufferingUpdate提供什么.我正在使用40分钟的播客MP3 (64kbps bitrate)- 缓冲分为1%,2%,3%.当我寻求大约30分钟,它显示75%,然后当我寻求回到开始回到5% - 这个回调的重点是什么,除了显示大约什么是缓存?
最后 - 有什么方法可以管道流式传输到MP3什么?
我正在尝试构建一个应用程序,我必须将媒体文件(音频和视频)流式传输到浏览器.我正在通过php读取文件并将数据发送到浏览器.我使用以下代码.
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: {$file->getMimetype()}");
header("Content-Disposition: inline; filename=".$filename.";");
header("Content-Length: ".strlen($file_content));
echo $file_content;
Run Code Online (Sandbox Code Playgroud)
除了我尝试转发视频或音频时(我的意思是假设当前播放位置为0:15并且它直接转到1:25),媒体停止并且当我再次按下播放按钮时,每件事情都工作得很好从头开始.
我认为问题在于缓冲,但无法弄清楚.我在标题中做错了什么或需要别的东西.
谢谢.
是否有可能通过javascript检测到youtube缓冲的完成?这里http://code.google.com/intl/de-DE/apis/youtube/js_api_reference.html有很多方法,但没有人有"完成缓冲"的事件.
如果print s被替换,print >>sys.stderr, s则效果消失.
import random, sys, time
import threading
lock = threading.Lock()
def echo(s):
time.sleep(1e-3*random.random()) # instead of threading.Timer()
with lock:
print s
for c in 'abc':
threading.Thread(target=echo, args=(c,)).start()
Run Code Online (Sandbox Code Playgroud)
# Run until empty line is found:
$ while ! python example.py 2>&1|tee out|grep '^$';do echo -n .;done;cat out
Run Code Online (Sandbox Code Playgroud)
....................
b
c
a
Run Code Online (Sandbox Code Playgroud)
输出不应包含空行,但确实如此.我知道这print不是线程安全的,但我认为锁应该有所帮助.
我的机器:
$ python -mplatform
Linux-2.6.38-11-generic-x86_64-with-Ubuntu-11.04-natty
Run Code Online (Sandbox Code Playgroud)
额外的线条印在py26,py27,pypy上.
py24,py25,py31,py32表现得如预期的那样(没有空行).
sys.stdout.flush()之后print没有解决问题:
with lock:
print(s) …Run Code Online (Sandbox Code Playgroud)在PHP中有时候我会看到:
$html = <<<HTML
<p>Hello world</p>
HTML;
Run Code Online (Sandbox Code Playgroud)
通常我会使用ob_start():
ob_start();
?>
<p>Hello world</p>
<?php
$html = ob_get_contents();
ob_clean();
Run Code Online (Sandbox Code Playgroud)
你能告诉我这两种写入缓冲区的方式和它们的优点有什么区别吗?
每次交换缓冲区时,重用对象实例与创建新实例之间有什么区别和缺陷?
背景:
这是我的游戏引擎项目.
我正在写一个TripleBuffer,我有三个版本的每个对象:旧版本,当前版本和未来版本.将通过从当前版本读取状态并将更改应用于将来的版本来对这些对象进行更改.在对所有对象进行更改后(如果适用),将交换缓冲区:将来的对象成为当前对象,当前对象成为旧对象,还是旧对象?
说明:
使用案例:
假设大约1000个对象以30Hz交换,这意味着它们需要每秒重建30次,方法是克隆现有的对象,或者重用现在过时的旧对象(覆盖其所有状态).
它们的复杂程度可以从大约5个属性到数百个属性,并且总是具有至少2个级别的深度.
(深度至少为2级 =缓冲对象本身只包含其他唯一对象的地图,这些对象组成了它们)
重新创建和重用都需要迭代当前对象及其组件(短于:反过来构成它们的对象).
进一步考虑:
在引擎的其他部分,将有事件触发和其他魔法,它们将使用对象的及时快照.因此,重新创建或重用的决定将导致:
我正在使用媒体播放器通过RTSP在Android上播放视频.在开始播放之前,播放器需要大约12秒才能缓冲.任何人都知道如何说服玩家减少缓冲?我可以完全控制RTSP服务器和它返回的SDP.
我目前正在使用缓冲流来读取写入一些文件.在我之间我做一些数学处理,其中符号是一个字节.
阅读 :
InputStream input = new FileInputStream(outputname)
input.read(byte[] b,int off,int len)
Run Code Online (Sandbox Code Playgroud)
来写 :
OutputStream output = new BufferedOutputStream(
new FileOutputStream(outputname),
OUTPUTBUFFERSIZE
)
output.write((byte)byteinsideaint);
Run Code Online (Sandbox Code Playgroud)
现在我需要添加一些标题数据,并支持短符号.我想使用 DataInputStream并DataOutputStream避免自己将其他类型转换为字节,我想知道它们的性能是什么.
我需要使用吗?
OutputStream output = new DataOutputStream(
new BufferedOutputStream(
new FileOutputStream(outputname),
OUTPUTBUFFERSIZE
)
);
Run Code Online (Sandbox Code Playgroud)
保持数据缓冲的优势,或者它足以使用
OutputStream output = new DataOutputStream(
new FileOutputStream(outputname)
)
Run Code Online (Sandbox Code Playgroud) 我正在试验fork()并重新指导检查父母的重新指示是否也适用于孩子.我写了以下简单的程序
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main ()
{
freopen( "error.txt", "w+t", stdout ); // From now on, stdout = error.txt
printf (" ERROR! WHY DONT U UNDERSTAND?\n");
if ( fork() == 0 )
{
printf(" I AM CHILD\n");
exit(0);
}
else-
{
printf (" EITHER I AM A PARENT OR SOMETHING GOT SCREWED\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
error.txt我得到的输出()是
ERROR! WHY DONT U UNDERSTAND?
EITHER I AM A PARENT OR SOMETHING GOT SCREWED
ERROR! WHY DONT U UNDERSTAND? …Run Code Online (Sandbox Code Playgroud) 我在这里看到了这个问题,但是给出的答案在我的案例中没有用,并且被标记为重复.
python -ustdin在Python 3中不起作用.sys.stdin = sys.stdin.detach()抛出一个ValueError: underlying buffer has been detached.stdin输入和其他文件用作流.FileInput(openhook=hook_nobuf)并open(buffering=0)在钩子中使用.我挖了源代码(/usr/lib/python3.2/fileinput.py)并看到它readlines(bufsize)在内部用于加载缓冲区.没有贝壳或其他管道的恶作剧.