我正在使用Android媒体播放器类在我的Android应用程序中播放通知声音.
MediaPlayer player = MediaPlayer.create(getApplicationContext(), R.raw.notify);
player.setLooping(false);
player.start();
Run Code Online (Sandbox Code Playgroud)
我需要在不同的活动中播放不同的通知声音,所以每次我需要播放声音我需要创建媒体播放器实例然后我需要说开始.
但是,不是这样做,我如何在整个应用程序中维护媒体播放器的单个实例,并在所有活动中使用它来播放声音.
有人可以建议我更好的实施方式.从我的角度来看,我将创建一个单例类,我将在此类中添加所有与MediaPlayer相关的函数.
谢谢.
我想运行一个线程(它在后台执行一些耗时的任务并且不更新UI)它只是从互联网上下载一些文件而且它独立于UI.
我想在一段时间间隔后重复运行这个线程.
我怎么能这样做,我有类似下面的线程:
boolean mResult =false;
void onCreate()
{
DownloadThread mDownloadThread = new DownloadThread();
mDownloadThread.start();
}
class DownloadThread extends Thread implements Runnable
{
public void run()
{
// My download code
mResult = result;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要用它Handler来实现吗?
我有与https://apprtc.appspot.com/服务器一起运行的android WebRTC Android演示应用程序代码.
但我要归档的是,我想https://apprtc.appspot.com/用我自己的服务器替换服务器,我想修改/删除与服务器通信的代码部分,因为我的服务器通信方式不同.
我希望保持与WebRTC相关的API调用,并且只替换与https://apprtc.appspot.com/服务器通信的源代码部分.
基本上我想知道,为了允许使用我的服务器进行AV呼叫,我必须调用什么WebRTC API,我有STUN/TURN和注册服务器.
我只想重用核心WebRTC功能并在其上面编写应用程序.
有人可以指导我这个!
提前致谢.
我有以下两种与ArrayList get方法相关的情况,一种与自定义类有关,另一种与String类有关:
1.下面是修改Custom类ArrayList元素的示例:
ArrayList<MyClass> mTmpArray1 = new ArrayList<MyClass>();
MyClass myObj1 = new MyClass(10);
mTmpArray1.add(myObj1);
MyClass myObj2 = mTmpArray1.get(0);
myObj2.myInt = 20;
MyClass myObj3 = mTmpArray1.get(0);
Log.d(TAG, "Int Value:"+myObj3.myInt); // Prints "20"
Run Code Online (Sandbox Code Playgroud)
2.下面是修改String ArrayList元素的示例:
ArrayList<String> mTmpArray2 = new ArrayList<String>();
mTmpArray2.add("Test_10");
String myStr1 = mTmpArray2.get(0);
myStr1 = "Test_20";
String myStr2 = mTmpArray2.get(0);
Log.d(TAG, "Str Value:"+myStr2); // Prints "Test_10"
Run Code Online (Sandbox Code Playgroud)
因此,在MyClass ArrayList的情况下,当我调用get并修改值时,我看到更改将在get再次执行时反映出来。
但是以同样的方式修改字符串ArrayList时,更改不会反映出来。
get在这两种情况下,该方法有何不同?
是在String的情况下,String类创建深度复制并返回新对象,还是在Custom类的情况下创建浅拷贝?
在适用于“ LinkedHashMap”,“ HashMap”和“ List”的第一种情况下?
在我的 AngularJS 应用程序中,我发送 HTTP GET 请求,如下所示。
MyService.HttpReq("testUrl", "GET", null);
Run Code Online (Sandbox Code Playgroud)
HttpReq方法在服务中定义并实现如下:
this.HttpReq = function(URL, method, payload)
{
$http({
url: URL,
method: method,
cache: false,
data: postData,
headers: {
'Content-Type': 'application/json',
}
}).success(function(response)
{
console.log("Success: "+JSON.stringify(response));
}).error(function(data, status)
{
console.error("Error");
});
}
Run Code Online (Sandbox Code Playgroud)
首先,这是在 AngularJS 中发送 HTTP 请求的正确方法吗?
我面临的问题是,有时我得到缓存数据作为响应,但 HTTP 请求没有到达服务器。可能是什么问题?
更新
根据评论和回答,我已更新了我的 HTTP 请求代码,如下所示,但仍然遇到相同的问题。
this.HttpReq = function(URL, method, payload)
{
$http({
url: URL,
method: method,
cache: false,
data: payload,
headers: {
'Content-Type': 'application/json',
'Cache-Control' : 'no-cache'
}
}).
then(
function(response)
{ …Run Code Online (Sandbox Code Playgroud) 我有一个线程类,它参与onCreate活动.
class MyThread extends Thread
{
void run()
{
//My code which takes time.
}
}
//-------------------------- To run the thread
MyThread mThread = new MyThread();
mThread.start();
Run Code Online (Sandbox Code Playgroud)
在一些外部事件上,我需要停止/销毁当前正在运行的线程.
然后我start在新线程上创建MyThread的新副本并调用函数来运行它.
但我无法销毁/停止以前运行的线程.
是否有任何API可以破坏正在运行的线程.
我的格式有时间戳2017-18-08 11:45:30.345.
我想将它转换为纪元时间,所以我在下面做:
String timeDateStr = "2017-18-08 11:45:30.345";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-dd-MM HH:mm:ss.SSS");
ZonedDateTime zdt = ZonedDateTime.parse(timeDateStr, dtf);
System.out.println(zdt.toInstant().toEpochMilli());
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
java.time.format.DateTimeParseException:无法解析文本'2017-18-08 11:45:30.345':无法从TemporalAccessor获取ZonedDateTime
我也尝试过不同的格式,但仍然会出错.
我想解析HLS master m3u8文件并从中获取带宽,分辨率和文件名.目前我正在使用String解析来搜索某些模式的字符串,并使用子字符串来获取值.
示例文件:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=476416,RESOLUTION=416x234
Stream1/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=763319,RESOLUTION=480x270
Stream2/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1050224,RESOLUTION=640x360
Stream3/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1910937,RESOLUTION=640x360
Stream4/index.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3775816,RESOLUTION=1280x720
Stream5/index.m3u8
Run Code Online (Sandbox Code Playgroud)
但是我发现我们可以使用这个问题中提到的正则表达式来解析它: 在Android中匹配正则表达式模式的问题
我没有任何正则表达的想法,所以有人请指导我使用正则表达式解析它.
或者有人可以帮我编写regexp来解析下面的字符串中的BANDWIDTH和RESOLUTION值
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=476416,RESOLUTION=416x234
Run Code Online (Sandbox Code Playgroud) Android的WebRTC示例文件夹的示例代码/root/trunk/talk/examples/android/是使用Http Peer Connection还是使用Libjingle XMPP协议与服务器通信?
我正在尝试使用WebRTC创建示例android应用程序,它将与我的本地Http服务器进行对话以进行登录和调用.
我的服务器很简单http不是XMPP,我想要一些示例代码来测试它的android平台,所以我想在WebRTC代码库中使用这个android示例代码,如果它是基本的http WebRTC客户端的android.
我使用chart.js 3.x版实现了以下图表。
https://jsfiddle.net/Lxya0u98/12/
我的图表中有多个数据集来实现我想要的行为。
我面临数据集重叠的问题。
在图表中,我已经结束了blue color line与green color dot数据集的重叠。有没有办法避免这个问题?
我有以下两个数据集:
// Data set for the Big Dot
{
showLine: false,
borderWidth: 0,
lineTension: 0,
borderColor: colorVal,
backgroundColor: colorVal,
pointBackgroundColor: colorVal,
pointBorderColor: colorVal,
pointBorderWidth: 2,
pointRadius: 15,
};
// Data set for the Connecting Lines
{
showLine: true,
lineTension: 0,
borderWidth: 5,
borderColor: colorVal,
pointRadius: 0,
pointBorderWidth: 0,
spanGaps: true,
};
Run Code Online (Sandbox Code Playgroud)
是否有数据集的 Z 索引,以便它们出现在堆栈中前一个的顶部。