小编060*_*002的帖子

如何按概率选择项目?

我有一个项目清单.这些项目中的每一项都有自己的概率.

任何人都可以提出一种基于其概率选择项目的算法吗?

java random list probability

61
推荐指数
8
解决办法
5万
查看次数

删除Java String变量的最后一个字符

一个java String变量,其值为

String path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
Run Code Online (Sandbox Code Playgroud)

我想删除最后四个字符,即.null.我可以使用哪种方法进行拆分.

java string

56
推荐指数
4
解决办法
14万
查看次数

在对话窗口外触摸时,android 4.0对话框被取消

嗨,我在ICS dialogdismissed遇到的问题就像我们点击外面的dialog窗口一样,由于这个问题我没有得到用户的任何确认.

请帮忙.

dialog android-4.0-ice-cream-sandwich

35
推荐指数
3
解决办法
3万
查看次数

新Integer(123),Integer.valueOf(123)和123之间的差异

我看到代码(Java)是这样的:

myMethod(new Integer(123));
Run Code Online (Sandbox Code Playgroud)

我目前正在重构一些代码,并且在Sonar工具中有一个提示,使用这样的内存更友好:

myMethod(Integer.valueOf(123));
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下,我认为如果我使用的话没有区别:

myMethod(123);
Run Code Online (Sandbox Code Playgroud)

我能理解,如果我将一个变量传递给该方法,但是硬编码为int?或者,如果有长/双等,我想要长数字表示.但是整数?

java integer new-operator value-of

28
推荐指数
2
解决办法
4万
查看次数

两个Android手机之间的实时视频流

我目前正在研究两款Android手机之间的视频流.我写了一个能够将视频录制到sd文件的应用程序(使用MediaRecorder); 我写了另一个能够显示文件视频的应用程序.两个应用程序都运行良

我在以下网站找到了一个关于"用Android播放视频 - 无需写入本地文件"的网站.这正是我想要做的.

http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system

我修改了我的代码.

对于录像机,它是:

socket=severSocket.accept();
ParcelFileDescriptor=pfd;
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setVideoFrameRate(15);
recorder.setVideoSize(320, 240);
recorder.setPreviewDisplay(holder.getSurface());
pfd = ParcelFileDescriptor.fromSocket(socket);
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare(); 
recorder.start();
Run Code Online (Sandbox Code Playgroud)

对于视频播放器:

Socket socket = new Socket(IP,PORT);
mMediaPlayer = new MediaPlayer();
pfd = ParcelFileDescriptor.fromSocket(socket);
mMediaPlayer.setDataSource(pfd.getFileDescriptor()); // <-- here is the problem
mMediaPlayer.setDisplay(holder); 
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);            
mMediaPlayer.setOnCompletionListener(this);            
mMediaPlayer.setOnPreparedListener(this);            
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.start();
Run Code Online (Sandbox Code Playgroud)

程序粉碎mMediaPlayer.setDataSource(pfd.getFileDescriptor());MediaPlayer我知道我没有正确设置DataSource.ParcelFileDescriptor必须有其他设置才能放入MediaPlayer.

有谁知道如何使用ParcelFileDescriptor进行MediaPlayer?任何有用的建议或提示都会很好......

谢谢

sockets android media-player android-videoview

14
推荐指数
1
解决办法
1万
查看次数

录制时流式传输MediaRecorder文件

我正在尝试从A点(2.1安卓手机)到B点(我的服务器)实时获取视频流.我该怎么办? 下面详细介绍了我的尝试(有点长,但简洁!)


目标是将手机录制的一小时长视频发送到服务器,而不会暂停/停止流.延迟几分钟不是问题.我尝试了三种方法

  1. 线程化一个从视频目的地的FileDescriptor读取的FileInputStream
  2. 在'sender'套接字的FD上调用MediaRecoder.setOutputFile.此套接字连接到LocalSocketServer,其目标是"接收器"套接字.
  3. 打开我的服务器的套接字,并给它的FD提供setOutputFile

不幸的是,两次尝试都失败了.

  1. 每当我调用FileInputStream.available()时,只注册24个字节,并且只有在我调用Recorder.stop()之后才会注册实际的字节数
  2. 给了我这个美丽无用的堆栈跟踪

    ERROR/AndroidRuntime(18532):引起:java.lang.RuntimeException:启动失败.ERROR/AndroidRuntime(18532):在android.media.MediaRecorder.start(Native Method)ERROR/AndroidRuntime(18532):at com.example.demovideo.DemoVideo.initializeCamera(...)...

  3. 同样的错误2

代码片段(部分省略)

1)

fileOut = new FileOutputStream(pathToFile);
...
recorder.setOutputFile(fileOut.getFD());
recorder.prepare()
recorder.start()

// in an Async Thread
fileIn = FileInputStream(fileOut.getFD);
while (recording) {   
    fos.flush();
    Log.w("---", "bytesAvailable: " + fileIn.available()); //always returns 24
    Thread.sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)

2)

// in a Thread
server = new LocalServerSocket(SOCKET_ADDRESS);
    while (true){
        receiver = server.accept();
        if (receiver != null){
        InputStream input = receiver.getInputStream();
            ... // processing would go here
    }   }

sender = new LocalSocket();
sender.connect(new …
Run Code Online (Sandbox Code Playgroud)

java streaming android video-streaming mediarecorder

8
推荐指数
1
解决办法
7782
查看次数

如何将终端输出写入文件

我想将脚本的结果保存到文件中.脚本示例:

#!/usr/bin/env python
i=0
while i<10:
  a=raw_input('Write a number')
  print 'Result%s'%str(2*a)
  i+=1
Run Code Online (Sandbox Code Playgroud)

我想保存到文件打印值.我知道我可以在脚本中执行此操作f=open()...,但我想使用终端中的输出来执行此操作.我读到我可以使用模块,subprocess但我不知道它是正确的.

python

7
推荐指数
3
解决办法
3万
查看次数

Android MediaRecorder - "开始失败:-19"

我正在尝试在Android上创建一个录像机,并且我已经准备好了应该正常工作的代码 - 但我不断收到错误消息start failed: -19.

这是我的代码:

public boolean startRecording() {
    try {
        camera.unlock();
        mediaRecorder = new MediaRecorder();
        mediaRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {

                @Override
                public void onError(MediaRecorder mr, int what, int extra) {
                Log.i(TAG, "Error");
            }
        });

        mediaRecorder.setCamera(camera);
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        Log.i(TAG, "a");

        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
        Log.i(TAG, "b");

        mediaRecorder.setMaxDuration(maxDurationInMs); // set to 20000

        String uniqueOutFile = OUTPUT_FILE + System.currentTimeMillis() + ".3gp";
        File outFile = new File(uniqueOutFile);
        if (outFile.exists()) {
            outFile.delete();
        }
        mediaRecorder.setOutputFile(uniqueOutFile);
        mediaRecorder.setVideoFrameRate(videoFramesPerSecond); // set to 20
        mediaRecorder.setVideoSize(sView.getWidth(), sView.getHeight());
        Log.i(TAG, "c");

        mediaRecorder.setPreviewDisplay(holder.getSurface()); …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-mediarecorder

6
推荐指数
1
解决办法
3万
查看次数

无法在三星Galaxy S2中的VideoView中播放RTSP视频

我正在尝试播放实时RTSP视频(来自rtsp://media2.tripsmarter.com/LiveTV/BTV/)VideoView,这是我的代码:

public class ViewTheVideo extends Activity {
    VideoView vv;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        vv = (VideoView) this.findViewById(R.id.VideoView);

        Uri videoUri = Uri.parse("rtsp://media2.tripsmarter.com/LiveTV/BTV/");
        vv.setMediaController(new MediaController(this));
        vv.setVideoURI(videoUri);
        vv.requestFocus();
        vv.setOnPreparedListener(new OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                vv.start();
            }           
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

这个代码在三星Galaxy Y上工作正常,甚至在模拟器上也可以,但它不能在三星Galaxy S2上运行(对不起,这个视频无法播放)!设备和模拟器都运行Gingerbread.

这是LogCat消息:

07-30 10:48:28.310: I/MediaPlayer(24573): uri is:rtsp://media2.tripsmarter.com/LiveTV/BTV/
07-30 10:48:28.310: I/MediaPlayer(24573): path is null
07-30 10:48:28.310: D/MediaPlayer(24573): Couldn't open file on client side, trying server side
07-30 10:49:13.025: W/MediaPlayer(24573): info/warning (1, 26) …
Run Code Online (Sandbox Code Playgroud)

android rtp rtsp galaxy android-videoview

5
推荐指数
1
解决办法
3904
查看次数

Google Glass上的眨眼检测

有一个第三方应用程序用winks拍照:withy在github上.这个应用程序使用反射获取眼睛手势检测服务,并使用它来拍照.但是自XE11以来该服务无法使用.

有没有办法检测在XE12上运行的Google Glass中的传情动漫?眼镜现在支持用眨眼拍照(可以从设置中配置),但是GDK中是否有任何可用于检测眨眼的服务?或者是否有任何事件监听器在检测到眨眼时触发?

google-glass google-gdk

5
推荐指数
2
解决办法
1646
查看次数