小编Cha*_*kar的帖子

MediaMetadataRetriever.getFrameAtTime()仅返回第一帧

我使用MetadataRetriever从视频中提取帧,并将所有图像存储在一个ArrayList<Bitmap>.我想将它们全部存储在SD卡上(仅用于测试目的).

但是当我从模拟器中取出一个文件夹并查看保存的图像时,所有图像都只是视频的第一帧.

这就是我从视频中提取帧的方法:

File videoFile=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/videos","sample_mpeg4.mp4");

Uri videoFileUri=Uri.parse(videoFile.toString());

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(videoFile.getAbsolutePath());
ArrayList<Bitmap> rev=new ArrayList<Bitmap>();

//Create a new Media Player
MediaPlayer mp = MediaPlayer.create(getBaseContext(), videoFileUri);

int millis = mp.getDuration();
for(int i=0;i<millis;i+=100){
   Bitmap bitmap=retriever.getFrameAtTime(i,OPTION_CLOSEST_SYNC);
   rev.add(bitmap);
}
Run Code Online (Sandbox Code Playgroud)

这就是我如何保存它们(我正在调用此方法并传递位图ArrayList):

public void saveFrames(ArrayList<Bitmap> saveBitmapList) throws IOException{
    Random r = new Random();
    int folder_id = r.nextInt(1000) + 1;

    String folder = Environment.getExternalStorageDirectory()+"/videos/frames/"+folder_id+"/";
    File saveFolder=new File(folder);
    if(!saveFolder.exists()){
       saveFolder.mkdirs();
    }

    int i=1;
    for (Bitmap b : saveBitmapList){
       ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        b.compress(Bitmap.CompressFormat.JPEG, …
Run Code Online (Sandbox Code Playgroud)

video android bitmap save

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

Android,Java - 使用位图帧渲染视频以反转视频(Xuggler)

我没有视频帧ArrayList<Bitmap>.我MediaMetadataRetriever.getFrameAtTime()在视频文件(.mp4)上使用方法访问了这些帧.

我颠倒了ArrayList中帧的顺序.现在使用这个反向排序的帧队列,我想渲染一个视频,因此它将被反转(我希望我在正确的轨道上).

创建该视频后,我还想将其保存到SD卡.

怎么实现这个?或者是否有任何其他方法来反转java中的视频?

编辑1: (***使用xuggler*)**

我尝试使用xuggler ...我尝试使用它的.jar文件.但它正在抛出一些错误.

[2012-08-18 00:29:16 - xugglertest2] The library 'xuggle-xuggler-5.2.jar' contains native libraries that will not run on the device.
    [2012-08-18 00:29:16 - xugglertest2]  The following libraries were found:
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle-xuggler.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/i686-pc-linux-gnu/libxuggle.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-ferry.so
    [2012-08-18 00:29:16 - xugglertest2]  - com/xuggle/ferry/x86_64-pc-linux-gnu/libxuggle-xuggler-io.so
    [2012-08-18 00:29:16 - xugglertest2]  - …
Run Code Online (Sandbox Code Playgroud)

java video android rendering xuggler

13
推荐指数
1
解决办法
6628
查看次数

arm-linux-androideabi-gcc无法创建可执行文件 - 为android armeabi设备编译ffmpeg

我正在尝试为android armeabi设备编译ffmpeg.
我正在按照roman10.net的 教程进行操作.
他给出的构建脚本为armv7-a设备构建了ffmpeg.我想为armeabi建造它.

我的最终目标是在android armeabi和armv7-a设备上运行ffmpeg命令.

所以我改变了脚本的CPU部分

#arm v7vfpv3
CPU=armv7-a
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
PREFIX=./android/$CPU
ADDITIONAL_CONFIGURE_FLAG=
build_one 
Run Code Online (Sandbox Code Playgroud)

#arm v6
CPU=armv6
OPTIMIZE_CFLAGS="-marm -march=$CPU"
PREFIX=./android/$CPU 
ADDITIONAL_CONFIGURE_FLAG=
build_one
Run Code Online (Sandbox Code Playgroud)

(我认为将它更改为armv6将构建与armeabi设备兼容的ffmpeg.我错了吗?)

疑问1:
我是否还需要更换工具链?
即从arm-linux-androideabi-4.4.3arm-eabi-4.4.0 ?????

疑惑2:

当我尝试运行./build.sh(不更改工具链)时,它会给我以下错误:

/home/chaitanya/android/android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc is unable to create an executable file.
C compiler test failed.

If you think configure made a mistake,.. blaah blahh blaah
Run Code Online (Sandbox Code Playgroud)

之后我收到很多警告:
'sub_id'已被弃用,许多其他功能已弃用警告.

平台:ubuntu 11.10
ffmpeg版本:0.11.2
NDK:android-ndk-r5b

这是我的构建脚本:

#!/bin/bash
######################################################
# Usage:
# put this script …
Run Code Online (Sandbox Code Playgroud)

android gcc arm ffmpeg ubuntu-11.10

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

Apache默认端口更改不能正常工作ubuntu 12.04

我正在使用ubuntu 12.04
我试图将我的默认apache2端口从80改为8085
我编辑了/etc/apache2/ports.conf

我编辑了"Listen 80"行到"Listen 8085"

然后重新启动我的apache
然后在我放的浏览器中测试这个

netstat -tulpn | grep 8085 
结果是"404 Not Found"

然后我打开终端并运行

tcp    0      0 0.0.0.0:8085       0.0.0.0:*     LISTEN      

o/p是:

netstat -tulpn | grep 8085 

我做错了什么?
我错过了什么?

谢谢和问候!!

apache ubuntu port localhost

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

Bambuser ffmpeg - "arm-linux-androideabi-gcc无法创建可执行文件."

我知道这可能是一些问题的重复.但这些线程的答案并没有帮助我.

我正在尝试使用Bambuser的ffmpeg为android编译ffmpeg库.
为客户端版本1.3.7下载了Archive到1.6.0.来自bambuser.

我按照REAME中的说明进行操作.
在运行./build.sh时遇到以下错误

arm-linux-androideabi-gcc is unable to create an executable file.
C compiler test failed.

If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
Run Code Online (Sandbox Code Playgroud)

这是ffmpeg 的config.log的最后几行

mktemp is /bin/mktemp
check_ld
check_cc …
Run Code Online (Sandbox Code Playgroud)

android gcc ffmpeg android-ndk-r5 ubuntu-11.10

7
推荐指数
1
解决办法
6875
查看次数

使用jQuery逐渐模糊图像

我有一个图像,我想为它设置一些初始模糊.根据用户的一些动作,我希望图像减少一些量的模糊度.是否有任何jQuery插件可以让你处理模糊半径或类似的东西?

我在这里遇到过一个jQuery API http://www.pixastic.com/lib/docs/actions/blur/ 但我不认为它能够逐渐改变图像的模糊性.

需要帮助,请建议我该怎么办?还有什么我可以使用的吗?Thanx提前.

jquery image blurry

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

可编辑的部门而不是Textarea.输入没有提交!PHP

如果我使用

<div contentEditable="true" name="content"></div>
Run Code Online (Sandbox Code Playgroud)

而不是Textarea的形式我无法提交上面可编辑部门的输入.

我正在使用可编辑的部门,因为我想在输入可编辑部门中运行时添加图像.

那么有没有办法提交可编辑部门的输入?

我使用PHP作为服务器端语言.

html php forms textarea

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

Express 4 - 用promise.then链接res.json不起作用

我正在开发一个使用mysqlsequelize打包的快速4应用程序.Sequelize ORM使用promises从数据库中获取数据.我正在尝试在路由器中获取数据并发送json响应.当我试图链接then承诺的回调时,res.json我在控制台说出错Unhandled rejection TypeError: Cannot read property 'get' of undefined

// This works
employeeRouter.get("/:id", function(req, res){
   Employee.findById(req.params.id).then(function(data){
      res.json(data);
   });
});

// Replacing above code with following doesn't work
employeeRouter.get("/:id", function(req, res){
   Employee.findById(req.params.id).then(res.json);
});
Run Code Online (Sandbox Code Playgroud)

错误堆栈:

Unhandled rejection TypeError: Cannot read property 'get' of undefined
    at json (D:\Workstation\DataPro\CountryStats\node_modules\express\lib\response.js:241:21)
    at tryCatcher (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\promise.js:504:31)
    at Promise._settlePromise (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\promise.js:561:18)
    at Promise._settlePromise0 (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\promise.js:606:10)
    at Promise._settlePromises (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\promise.js:685:18)
    at Async._drainQueue (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\async.js:138:16)
    at Async._drainQueues (D:\Workstation\DataPro\CountryStats\node_modules\bluebird\js\release\async.js:148:10)
    at Immediate.Async.drainQueues [as _onImmediate] …
Run Code Online (Sandbox Code Playgroud)

node.js promise express sequelize.js bluebird

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

表单元素在从PHP回显时未提交

虽然从PHP回显一个表单并从php中的文件中检索到一些预定义的值,但我遇到了麻烦.

我可以在预期的两个输入框中看到这些预定义值,即文章的内容和标题.

但每当我点击提交时,表单的内容部分都没有提交.

当我做print_r($ _ REQUEST); 我只看到以下o/p数组([action] => edit_art [art_id] => 11 $ art_id [title] => TCS [agree] => on)

当我没有为内容输入框(textarea)提供预定义值时,它将被提交,无论我输入什么内容.

我的代码如下

echo '<form  action="art_action.php?action=edit_art&art_id=$art_id" method="post"><br />
<p><b>Article Title</b></p>
<input type="text" name="title" **value='.$art_title.'**/><br />
<span id="title_check"></span><br />
<p><b>Content</b></p><br />
<textarea cols="75" rows="20"  **value='.$content.'**  name="content"></textarea><br />
<span id="content_check"></span>
<div class="content" ><input type="checkbox" name="agree" style="margin-right:10px"/>Agree Terms and Conditions first.<span id="agree_check"></span><br />
<input type="button" onclick="varify_and_post_article(this.form)" Value="Post Article"/><br />
</form>';
Run Code Online (Sandbox Code Playgroud)

请帮帮我.Thanx提前!!

html php forms submit

2
推荐指数
1
解决办法
319
查看次数

AndEngine - 停止所有声音和音乐运行时 - 更改引擎的AudioOptions

我正在尝试为游戏创建设置,允许用户保存是否需要声音(CheckBox).

当用户取消选中它时,我想禁用所有其他声音.

这就是我正在做的事情

// Create Dialog
final SexyAlertDialog dialog = new SexyAlertDialog(mActivity,R.layout.settings,R.style.SettingDialog,false);

// Find CheckBox
final CheckBox isSoundEnabled = (CheckBox) dialog.findViewById(R.id.isSoundEnabled);

// Check SharedPreferences to get isSoundEnabled value
if(mSettingPreferences.getBoolean("isSoundEnabled", false)){
    isSoundEnabled.setChecked(true);
}else{
    isSoundEnabled.setChecked(false);
}

// OnCheckedChangeListener on Checkbox in AlertDialog
isSoundEnabled.setOnCheckedChangeListener(new OnCheckedChangeListener(){
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(isChecked){
            mSettingEditor.putBoolean("isSoundEnabled", true);
            mSettingEditor.commit();

            // Enable Music and Sound
            mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsSound(true);
            mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsMusic(true);

            Toast.makeText(mActivity, "Audio Enabled", Toast.LENGTH_LONG).show();
        }else{
            mSettingEditor.putBoolean("isSoundEnabled", false);
            mSettingEditor.commit();

            // Disable Music and Sound
            mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsSound(false);
            mActivity.getEngine().getEngineOptions().getAudioOptions().setNeedsMusic(false);

            Toast.makeText(mActivity, "Audio Disabled  !! …
Run Code Online (Sandbox Code Playgroud)

audio android andengine

0
推荐指数
1
解决办法
2320
查看次数

PDO多个查询:提交和回滚事务

我需要触发2个查询。目前,我正在这样做:

// Begin Transaction
$this->db->beginTransaction();

// Fire Queries
if($query_one->execute()){
    if($query_two->execute()){

        // Commit only when both queries executed successfully
        $this->db->commit();

   }else{
        $this->db->rollback();
   }
}else{
    $this->db->rollback();
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我在代码中没有使用try..catch,这会使我的代码在任何情况下都不适当或容易受到攻击吗?

php mysql pdo commit rollback

0
推荐指数
2
解决办法
5587
查看次数