我有通过HLS传送的视频.现在我想在JavaScript中测试该设备是否真的可以在HTML5中播放HLS视频.
通常在Javascript中我做了类似的事情
document.createElement('video').canPlayType('video/mp4')
然而我无法弄清楚哪种'类型'是正确的HLS.
Apple的Safari HTML5音频和视频指南似乎建议使用"vnd.apple.mpegURL"("清单1-7回归到IE的插件")
<video controls>
<source src="HttpLiveStream.m3u8" type="vnd.apple.mpegURL">
<source src="ProgressiveDowload.mp4" type="video/mp4">
....
Run Code Online (Sandbox Code Playgroud)
但canPlayType("vnd.apple.mpegURL")即使在iOS设备上也能返回一个空字符串,它可以完美地播放实际的HLS流.
有没有办法检查没有"外部知识"的播放功能(例如"检查iOS用户代理并假设它可以播放hls")?
我知道我可以在元素中指定多个源,浏览器将使用第一个可播放的源.但是在我的情况下,我需要向JW Player提供一个我无法修改的URL.所以我需要从一组视频编码中找到"最佳可播放URL".(处理源选择的开源JS库虽然是一个很好的解决方法.)
当我使用业务逻辑编写时,我的代码通常取决于当前时间.例如,查看每个未完成订单并检查是否应发送发票的算法(这取决于作业结束后的天数).在这些情况下,创建发票不是由显式用户操作触发,而是由后台作业触发.
现在,在测试方面,这给我带来了一个问题:
到目前为止,我找到了两个解
毕竟,第二种方法对我来说更成功.因此,我正在寻找一种方法来设置Python的datetime + time模块返回的时间.设置日期通常就足够了,我不需要设置当前小时或秒(即使这样会很好).
有没有这样的实用工具?是否有可以使用的(内部)Python API?
我试图理解elementFormDefault="qualified/unqualified"嵌入在WSDL(SOAP 1.1,WSDL 1)中的XML模式的含义.
例如,我在WSDL中有这个模式:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.example.com/library">
<xsd:element name="person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Run Code Online (Sandbox Code Playgroud)
在纯XML中,这显然是无效的,因为"name"没有指定的命名空间:
<lib:person xmlns:lib="http://www.example.com/library">
<name>XML Schema</name>
</lib:person>
Run Code Online (Sandbox Code Playgroud)
虽然这显然是有效的,因为所有元素都是合格的:
<lib:person xmlns:lib="http://www.example.com/library">
<lib:name>qualified xml</lib:name>
</lib:person>
Run Code Online (Sandbox Code Playgroud)
但令人惊讶的是libxml说以下内容也是有效的:
<person xmlns="http://www.example.com/library">
<name>XML Schema</name>
</person>
Run Code Online (Sandbox Code Playgroud)
问题1:我认为qualified意思<person>应该是这个样子<lib:person xmlns:lib="...">.但结果似乎表明该xmlns属性是一样的?
现在假设上面的XML是SOAP请求的一部分,例如
...
<s:Body>
<person xmlns="http://www.example.com/library">
<name>XML Schema</name>
</person>
</s:Body>
...
Run Code Online (Sandbox Code Playgroud)
问题2:如果WSDL包含qualified上面显示的模式,请求上面的请求是否有效?(普通SOAP,无视WS-I基本配置文件)
问题3当我考虑WS-I Basic配置文件(特别是4.1.13 SOAP Body和Namespaces)时上述请求是否仍然有效?(被person认为是"命名空间合格"?)
我有以下 ORM 对象(简化):
import datetime as dt
from sqlalchemy import create_engine, Integer, Column, DateTime
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Session, declarative_base
Base = declarative_base()
class Metrics(Base):
__tablename__ = 'metrics'
id = Column(Integer, primary_key=True)
ts = Column(DateTime, default=dt.datetime.now())
computed_values = Column(JSONB)
dates = Column(JSONB)
entry = Metrics(computed_values={'foo': 12.3, 'bar':45.6},
dates=[dt.date.today()])
engine = create_engine('postgresql://postgres:postgres@localhost:5432/my_schema')
with Session(engine, future=True) as session:
session.add(entry)
session.commit()
Run Code Online (Sandbox Code Playgroud)
每行有:
id首要的关键ts插入行时的时间戳computed_values要存储的实际 JSONB 数据datesJSONB 用于存储计算数据的日期列表。虽然我对该列没有任何问题computed_values,但默认 SQLAlchemy JSON 序列化程序无法序列化列datetime.date …
我想从各种"文档"文件格式生成缩略图,例如odt,doc(x)和ppt(x),还有来自Python应用程序的mp4,psd,tiff(以及可能的其他).据我所知,对于这些格式中的每一种,至少有一个开源应用程序可以生成预览图像/缩略图(例如LibreOffice,ffmpeg)或者至少提取嵌入的缩略图(例如imagemagick).
我的主要问题是这些应用程序/库中的每一个都使用不同的命令行选项,因此我正在寻找一个Python库(或统一的CLI工具),它提供了一个高级API来生成具有指定维度的缩略图,给出质量级别文件名并调用适当的外部工具(理想情况下包括捕获异常,段错误和超时).如果请求可以生成多个缩略图,则奖励点数(例如,每页一页,页面XY,每Z秒,但最多N个图像).
有谁知道这样的库/实用程序?(边界条件:文件可能包含敏感材料或可能非常大,因此必须在没有任何网络通信的情况下工作,使用外部Web服务是不可能的.)
如果在Python中没有这样的东西,那么本地可安装的Web服务也可以.
我有几个视频容器文件,其中包含各种编解码器中的音频和视频.现在,我想从Python脚本检查容器,以了解哪个编解码器用于音频+视频.这是在一个linux盒子上,所以我必要时可以使用所有工具.
我想也许gstreamer可以帮助我,但我无法找到一个可以帮助我的API.
有任何想法吗?我也对任何建议持开放态度,只要它是免费软件就不需要gstreamer :-) fs
我正在尝试拦截网页上特定表单的所有表单提交.使用jQuery看起来非常简单:form.submit(function(e) {…})如果单击"提交"按钮,它的工作效果非常好.
但是在select字段上还有一个onChange属性,this.form.submit()看起来这个调用绕过了我的监听器(在Chromium/Firefox中):
<script type="text/javascript">
function submitForm(e) {
window.alert('submitted');
e.preventDefault();
return false;
}
$(document).ready(function() {
$('#bar').submit(submitForm);
});
</script>
<form id="bar">
<select name="name" onChange="this.form.submit()">
<option>Foo</option>
<option>Bar</option>
</select>
<br/>
<input type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)
显然在上面的代码中我可以更改this.form.submit()为我的提交监听器的特定引用.然而,在我的真实应用程序中,它并不那么简单,所以我正在寻找不需要修改onChange属性的方法.
如果我没有做一个愚蠢的错误,但这实际上是预期的浏览器行为,如果你能解释事件流程以及为什么会导致上述症状,我会很高兴.
我想动态创建两个表之间的 1:n 关系。我的数据库模型是通过 SQLAlchemy 映射的,但由于我的应用程序的一些特殊功能,我无法使用默认的声明方式。
例如
class Foo(Base):
id = Column(Integer, autoincrement=True, primary_key=True)
flag = Column(Boolean)
class Bar(Base):
id = Column(Integer, autoincrement=True, primary_key=True)
foo_id = Column(Integer, ForeignKey('foo.id'))
# declarative version:
# foo = relationship(Foo)
Run Code Online (Sandbox Code Playgroud)
因此,我想在定义 Bar后将名为“foo”的关系添加到映射类“Bar” ,并且 SQLAlchemy 完成了定义映射器等工作。
2017-09-05 更新:为什么这对我来说是必要的?(我想我可以忽略这一点,因为我认为它主要分散了要解决的实际问题的注意力,但因为有关于它的评论......)
首先,我没有一个数据库,而是数百个/数千个。旧数据库中的数据不得以任何方式更改,但我希望使用单个源代码来访问旧数据(即使数据结构和计算规则发生显着变化)。
目前我们使用多个模型定义。后来的定义扩展/修改了以前的定义。我们经常动态地操作 SQLAlchemy 模型。我们尽量不在映射类中包含代码,因为我们认为多次更改表后确保代码的正确性会更加困难(代码必须在每个中间步骤中工作)。
在许多情况下,我们在模型 X-1 中最初定义表(映射类)后,会在模型 X 中以编程方式扩展表(映射类)。向现有 SQLAlchemy ORM 类添加列是可以管理的。现在,我们在现有表中添加一个新的参考列,并relationship()提供更好的 Python API。
我有一个文件需要在另一个 css 文件中使用。
为此,我已将此添加到 angular.json 文件中:
"styles": ["src/assets/css/theme.scss"],
Run Code Online (Sandbox Code Playgroud)
然后我尝试在 css 文件中使用它:
@import "theme.scss";
Run Code Online (Sandbox Code Playgroud)
Angular 找不到这条路径。