Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 空间媒体注入_Java_Android_C_Spatial - Fatal编程技术网

Java 空间媒体注入

Java 空间媒体注入,java,android,c,spatial,Java,Android,C,Spatial,经过长时间的搜索,最近我发现了一个空间媒体注入库。该库是google的spatial media injection的副本。谷歌用pythonscrpit开发了这个库,第一个提到的库是我可以在android中使用的C文件。我成功地注入了空间视频,但视频不是由空间音频(即Ambisonic音频)注入的。 我正在寻求帮助,如果有人成功地注入空间音频。 这是注入的起始代码 #include <iostream> #include <stdlib.h> #include "par

经过长时间的搜索,最近我发现了一个空间媒体注入库。该库是google的spatial media injection的副本。谷歌用pythonscrpit开发了这个库,第一个提到的库是我可以在android中使用的C文件。我成功地注入了空间视频,但视频不是由空间音频(即Ambisonic音频)注入的。 我正在寻求帮助,如果有人成功地注入空间音频。 这是注入的起始代码

#include <iostream>
#include <stdlib.h>
#include "parser.h"
#include "metadata_utils.h"
#include "mpeg/box.h"

using namespace std;

#include <string.h>
#include <jni.h>
//int parsefile(string in,string out);
extern "C" {
JNIEXPORT jint JNICALL
Java_com_blackbox_ffmpeg_examples_tools_video_VideoTrimmer_trimvideo(JNIEnv *env, jobject instance, jstring inputfile, jstring outputfile) {
// TODO
SpatialMedia::Parser parser;
parser.getInFile() = "/storage/emulated/0/360 videos/inject_pre.mov";
parser.getOutFile()= "/storage/emulated/0/DCIM/test.mov";
if ( parser.getInFile ( ) == "" )  {
    cout << "Please provide an input file." << endl;
    exit ( -1 );
}

Utils utils;
if ( parser.getInject ( ) )  {
    if ( parser.getOutFile ( ) == "" )  {
        cout << "Injecting metadata requires both input and output file." << endl;
        exit ( -2 );
    }
    Metadata md;
    std::string &strVideoXML = utils.generate_spherical_xml ( parser.getStereoMode ( ), parser.getCrop ( ) );
    md.setVideoXML ( strVideoXML );
   if ( parser.getSpatialAudio ( ) )
        md.setAudio ( &g_DefAudioMetadata );

    if ( strVideoXML.length ( ) > 1 ) {
        utils.inject_metadata(parser.getInFile(), parser.getOutFile(), &md);
      /*  Box *pAudioMediaAtom = new Box() ;
        std::fstream inFile ( parser.getInFile().c_str ( ), std::ios::in | std::ios::binary | std::ios::ate );
        pAudioMediaAtom->load(inFile,0,inFile.end);
        utils.inject_spatial_audio_atom(inFile, pAudioMediaAtom,  &g_DefAudioMetadata );
*/        } else
            cout << "Failed to generate metadata." << endl;
    }

return 0;
}

JNIEXPORT jstring JNICALL
Java_com_blackbox_ffmpeg_examples_tools_video_VideoTrimmer_stringFromJNI(JNIEnv *env, jobject obj) {
    string hello = "Hello from C++";
    return env->NewStringUTF(hello.c_str());
}
}
#包括
#包括
#包括“parser.h”
#包括“metadata_utils.h”
#包括“mpeg/box.h”
使用名称空间std;
#包括
#包括
//int parsefile(字符串输入、字符串输出);
外部“C”{
JNIEXPORT jint JNICALL
Java_com_blackbox_ffmpeg_示例_工具_视频剪辑_剪辑视频(JNIEnv*env、jobject实例、jstring输入文件、jstring输出文件){
//待办事项
空间媒体:解析器;
parser.getinfle()=“/storage/simulated/0/360 videos/inject_pre.mov”;
parser.getOutFile()=“/storage/emulated/0/DCIM/test.mov”;
if(parser.getinfle()=“”){
库特