我正在尝试下载视频文件,然后在应用程序中播放,如果我将视频文件放在res文件夹中我可以毫无问题地播放它,但是当我尝试下载视频然后播放它我得到VideoView错误:1,-2147483648.
这是我用来下载视频的代码:
try
{
URL url = new URL(videoURL);
URLConnection conexion = url.openConnection();
conexion.connect();
int lengthOfFile = conexion.getContentLength();
Log.d("ANDRO_ASYNC", "Length of file: " + lengthOfFile);
InputStream input = new BufferedInputStream(url.openStream());
final File dir = new File(this.getFilesDir() + "/videos");
dir.mkdirs(); //create folders where write files
final File file = new File(dir, "my_video.mp4");
Log.d("writePath", file.getPath());
FileOutputStream output = new FileOutputStream(file);
byte data[] = new byte[1024];
long total = 0;
while((count = input.read(data)) != -1)
{
total += count;
//publishProgress("" + (int)((total*100) / …Run Code Online (Sandbox Code Playgroud) 一些背景:
我正在使用 JavaScript 开发基于 Web 的移动应用程序。HTML 呈现基于 Safari。跨域策略已禁用,因此我可以使用 XmlHttpRequests 调用其他域。这个想法是解析外部 HTML 并获取特定元素的文本内容。
过去我是逐行解析文本,找到我需要的行。然后获取标记的内容,它是该行的子字符串。这很麻烦,每次目标html发生变化时都需要大量维护。
所以现在我想将 html 文本解析为 DOM 并在其上运行 css 或 xpath 查询。
它运作良好:
$('<div></div>').append(htmlBody).find('#theElementToFind').text()
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当我使用浏览器将 html 文本加载到 DOM 元素时,它会尝试加载所有外部资源(图像、js 文件等)。虽然它没有造成任何严重的问题,但我想避免这种情况。
现在的问题是:
如何在浏览器不加载外部资源或运行 js 脚本的情况下将 html 文本解析为 DOM?
我一直在思考的一些想法:
document.implementation.createDocument())创建新文档对象,但我不确定它是否会跳过外部资源的加载。假设我必须存储用户的敏感数据,这些数据可选择在客户端加密.
注意:
明文密码不存储在服务器上或通过网络传输.
我的选择和缺点:
1.无身份验证,客户端授权:
服务器将数据提供给每个人,但只有原始用户才有解码的方法.任何人
都可以使用数据来破解加密 - 而不是保护加密的最佳方法.
2.服务器端身份验证,无授权:
服务器存储用户密码以访问数据,并仅向可提供正确密码的用户提供数据.
用户不信任网络在没有加密的情况下传输数据.
3.身份验证和授权:
服务器存储用户密码以访问加密数据,加密使用与用户密码不同的密码完成.
安全性很好,但用户不想记住两个密码.
4.身份验证与授权:
服务器存储用户密码以访问加密数据,加密使用相同的密码完成.
用户很高兴.一些安全问题.
我更喜欢最新的第四个选项,但我担心的是:
如果服务器受到损害怎么办?如何确保加密密码和加密数据不能一起用来打破加密呢?如何才能更难打破加密?
一些想法:
编辑:
系统应该非常类似于应该从各方面保护的备份系统:服务器不应该能够读取数据,只有原始客户端应该能够访问数据,并且应该防止中间人攻击.因此,如果有人破解服务器身份验证或客户端加密,则不应泄露数据.
它应该是基于Web的,因此应该使用HTTPS阻止中间人攻击.
为防止服务器黑客泄露数据,数据在客户端加密.
为防止客户端加密篡改,应在服务器端使用一些登录和密码或令牌(可能是唯一的URL)来保护对数据的访问.
前言:
大多数J2EE应用程序都通过JNDI使用容器管理的数据源.这很好,因为它为配置这些连接提供了一个位置.
当我们想要使用ORM框架(如hibernate)或者必须知道默认模式的东西(主要用于Oracle,也可能是其他模式)时,问题就出现了,这可能与用于连接数据库的用户名不同.
我想将默认模式名称放在靠近数据源定义的位置.其中一个选择是将它放在JNDI中.然后我将在构建EntityManager之前从那里手动读取(实际上使用Spring).
正如我发现有一种简单的方法来指定Apache Tomcat中的自定义资源(在这种情况下它将是具有默认模式名称的String)(如果我错了,请纠正我):
<Environment name="schemaNames/EmployeeDB"
type="java.lang.String"
value="empl"
description="Schema name of Employees Database for HR Applications"/>
Run Code Online (Sandbox Code Playgroud)
无论如何,考虑到这可以在Apache Tomcat中完成,我应该如何在其他应用程序服务器中配置相同的自定义JNDI资源(String类型):
如果你知道其他服务器也会很棒.
另外,作为替代方案,我不想将模式名称放在系统属性或环境变量中.
非常感谢你 !
更新:
找到一些在JBoss上实现它的方法.我没有测试它.
http://forums.java.net/jive/thread.jspa?messageID=316228
发现信息的WebLogic,但他们谈论与配置programmaticly并没有这样做:
http://weblogic-wonders.com/weblogic/2010/06/12/binding-objects-in-weblogic-servers-jndi-tree/
HTTP :?//forums.oracle.com/forums/thread.jspa MESSAGEID = 4397353
我用的是JBoss AS。我有一个又长又重的 SQL 在应用程序服务器内运行。我想根据输入参数缓存结果。
我这里有几个选择:
使用缓存管理器并手动将结果放入缓存中。
使用带有加载器的缓存管理器,当缓存中没有结果时,加载器会将结果“加载”到缓存中。
我现在不关心将缓存复制到集群中的其他服务器。
我的问题是我应该选择什么选项?每个选项的优点和缺点是什么?(易于部署,配置混乱)
这可以使用 JBoss Cache 或 ehcache 或两者来实现。
更新: 我正在使用休眠,但结果不是实体,它们是计数器。我需要计算属于特定类别并具有特定状态的所有行。我希望缓存该结果。
我应该将结果包装在实体中吗?然后,我怎样才能让它像oracle中的(物化?)视图一样工作——自动更新或通过触发器更新。
我正在为Google Glass编写游戏,但遗憾的是,在Google Glass GDK上的当前版本中无法使用SpeechRecognizer API.
所以我一直在考虑实现一种非常简单的语音识别算法.假设我只想承认:"是"和"否".
你知道任何示例代码或任何有用的资源来帮助我实现这个吗?
我是否应该放弃这个想法并使用像CMUSphinx这样的大框架?
如何识别:上,下,右,左或数字从1到10?
algorithm android speech-recognition voice-recognition google-glass
android ×2
java ×2
jboss ×2
algorithm ×1
caching ×1
cross-domain ×1
dom ×1
ehcache ×1
encryption ×1
google-glass ×1
innerhtml ×1
jakarta-ee ×1
java-ee ×1
javascript ×1
jndi ×1
passwords ×1
security ×1
video ×1
weblogic ×1