Android MediaPlayer在自定义audiostream媒体应用程序中工作正常,但不支持更高版本

编辑: Android 2.2 MediaPlayer可以正常工作,只有一个SHOUTcast URL,但不能用另一个SHOUTcast URL 我需要从外部URL(shoutcaststream)播放audio文件。 目前,audio文件是逐步下载的,只要我们在手机本地临时存储中获得足够的audio,就会播放。 我正在使用StreamingMediaPlayer类 。 检查这段代码: private MediaPlayer createMediaPlayer(File mediaFile) throws IOException { MediaPlayer mPlayer = new MediaPlayer(); //example of mediaFile =/data/data/package/cache/playingMedia0.dat FileInputStream fis = new FileInputStream(mediaFile); mPlayer.setDataSource(fis.getFD()); mPlayer.prepare(); return mPlayer; } 现状: 1 – 它从Android 1.6到2.1,但不是像Android 2.2更高的版本,工作正常。 2-“mPlayer.setDataSource(fis.getFD())”是抛出错误的行。 3-错误是“无法创build媒体播放器” 其他解决scheme尝试 我尝试了下面的替代解决scheme,但没有任何工作到目 Android 2.2 MediaPlayer可以正常工作,只有一个SHOUTcast URL,但不能用另一个SHOUTcast URL 我在找什么? 我的目标是有一个Android 2.1及更高版本的代码的和平。 […]

上传的安全威胁

我允许用户上传文件到我的服务器。 我可能面临哪些安全威胁?我如何消除这些威胁? 比方说,我允许用户从他们的系统或networking上传图像到我的服务器。 现在要检查这些图像的大小,我必须将它们存储在我的/tmp文件夹中。 这不危险吗? 我怎样才能把风险降到最低? 也可以说我正在使用wget从用户上传的链接中下载图像。 我首先必须保存这些文件在我的服务器,以检查他们是否真的是图像。 另外如果恶作剧给了我一个URL,我最终下载整个网站的恶意软件?

如何手动延迟加载模块?

我已经尝试加载没有路由器使用SystemJsNgModuleLoader模块,但无法让它工作: this.loader.load(url).then(console.info); 我越来越Cannot find module xxx的任何string我使用的URL(aboslute /相对URL /path…尝试了很多select)。 我查看了路由器的源代码,找不到其他的SystemJsNgModuleLoader 。 我甚至不知道我应该用这个… 这个问题昨天在ng-europe 2016会议上被问到 – Miško&Matias回答说: MiškoHevery:只需要抓住模块 ,从那里你可以获得组件工厂,你可以在应用程序的任何地方dynamic加载组件工厂。 这正是路由器在内部所做的。 所以你也这样做是相当困难的。 MatiasNiemelä唯一需要注意的是在[Ng]模块上有一个名为entryComponents的东西,它标识了可能被延迟加载的组件 – 这是进入该组件集的东西。 所以当你有加载的模块时,请把这些东西放到entryComponents 。 …但是这个问题不是没有例子,也没有关于这个问题的不好的文件(; 任何人都知道如何手动加载模块,而不使用Route.loadChildren ? 如何获得模块 ,什么东西 ,应该进入entryComponents (我读了FAQ ,但不能没有实际加载模块尝试)?

DOM处理后的XML属性的顺序

在通过标准DOM处理XML时,序列化后的属性顺序不能保证。 最后,我使用标准的Java XML Transform API来序列化输出。 不过我确实需要保留一个命令。 我想知道在Java中是否存在任何可能性来保持通过DOM API处理的XML文件的属性的原始顺序,或者以任何方式强制执行命令(也许通过使用替代的序列化API来让您设置类财产)。 在我的情况下,处理可以减less使用一堆属性来改变一系列相同元素的一些属性(不是全部)的值,也可以插入更多的元素。 有没有“简单”的方法,或者我必须定义我自己的XSLT转换样式表来指定输出和改变整个inputXML文件? 更新我必须感谢你的答案。 现在的答案似乎比我预料的更为明显。 我从来没有注意到属性顺序,因为我以前从来没有需要它。 要求属性顺序的主要原因是生成的XML文件看起来不一样。 目标是一个configuration文件,其中包含数百个警报(每个警报由一组属性定义)。 这个文件通常不会随着时间的变化而变化,但是保持它的顺序是很方便的,因为当我们需要修改某些东西的时候,它会被手工编辑。 现在有些项目需要对此文件进行轻微的修改,例如将其中一个属性设置为客户特定的代码。 我开发了一个小应用程序,将原始文件(对所有项目通用)与每个项目的特定部分(修改某些属性的值)进行合并,以便项目特定的文件获取基本文件的更新(新的警报定义或一些属性值错误修正)。 我要求有序属性的主要动机是能够通过文本比较工具(例如Winmerge)再次检查应用程序的输出。 如果格式(主要是属性顺序)保持不变,则很容易发现差异。 我真的认为这是可能的,因为XML处理程序(如XML Spy)允许您编辑XML文件并应用一些sorting(网格模式)。 也许我唯一的select是使用这些程序之一来手动修改输出文件。

错误:任务执行失败':app:transformClassesWithDexForDebug'

错误 错误:任务“:app:transformClassesWithDexForDebug”的执行失败。 /usr/lib/jvm/java-8-oracle/com.android.build.transform.api.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'command'/ usr / lib / jvm / java-8-oracle / bin / java''以非零的退出值1结束 我的应用程序gradle文件: apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId 'Hidden application ID' minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release […]

Javascript(+)符号连接,而不是给variables的总和

为什么当我使用这个(假设i = 1 ) divID = "question-" + i+1; 我得到问题11,而不是问题2 ?

我如何检查用户是否按下了一个键?

在Java中,我有一个程序,需要连续检查用户是否按下一个键。 所以在psuedocode,像是 if (isPressing("w")) { //do somthing } 提前致谢!

传递函数setTimeout在循环中:总是最后一个值?

我试图使用setTimeout来执行一个匿名函数,我传递的信息,我有麻烦。 这(硬编码版本)将工作得很好: setTimeout(function(){alert("hello");},1000); setTimeout(function(){alert("world");},2000); 但是我试图从数组中取出hello和world,并且不用(a)使用全局variables将它们传递给函数,(2)使用eval。 我知道如何使用全局variables或eval来做到这一点,但是我怎样才能做到这一点。 这是我想做的事情(但我知道这是行不通的): var strings = [ "hello", "world" ]; var delay = 1000; for(var i=0;i<strings.length;i++) { setTimeout( function(){alert(strings[i]);}, delay); delay += 1000; } 当然,string[i]将脱离上下文。 如何将string[i]传递给匿名函数而不用eval或全局variables?

mysqlselectdynamic行值作为列名,另一列作为值

我有一个遗留的用户信息表(这仍然在积极使用),我不能改变的结构 – id name value —————————— 0 timezone Europe/London 0 language en 0 country 45 0 something x 1 timezone Europe/Paris 1 language fr 1 country 46 时区/语言/国家等只是名称的例子,它们可以是可变的/除了在该列的行上的唯一性之外没有有限的列表 我需要一个MySQL兼容的SQL查询,将返回 – id timezone language country something ————————————————— 0 Europe/London en 45 x 1 Europe/Paris fr 46 我已经通过各种各样的解决scheme,看看围绕黑客入侵MySQL的数据透视表function,以及类似的,但没有一个似乎匹配这种情况下从同一个表的列中的唯一行值使用variables列名别名。 虽然我几乎没有睡觉,所以他们都开始变得模糊,提前道歉。 最近我可以find将使用预先准备的语句https://stackoverflow.com/a/986088/830171这将首先从名称列中获取所有可能的/唯一的值,并build立使用CASE WHEN ,和/或多个子查询的查询, SELECT或JOIN在相同的表查询。 我能想到的替代方法是获取该用户标识的所有行,并在应用程序本身的for循环中处理它们,或尝试将名称限制为有限的数量并使用子SELECT / JOIN 。 […]

从模板父类访问inheritancevariables

考虑下面的代码: template<class T> class Foo { public: Foo() { a = 1; } protected: int a; }; template<class T> class Bar : public Foo<T> { public: Bar() { b = 4; }; int Perna(int u); protected: int b; }; template<class T> int Bar<T>::Perna(int u) { int c = Foo<T>::a * 4; // This works return […]