May*_*dhi 6 audio android audio-recording video-recording
我已经创建了在我的应用中录制视频的功能.
播放歌曲时,该歌曲会录制视频并创建视频文件,类似于dubshmash应用程序.
现在我面临的问题是,其他声音如声音附近也会被记录下来.歌曲文件记录在视频录制屏幕中,我在视频录制活动启动时播放歌曲.
如何让我的应用程序只记录带有视频的歌曲?
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
Run Code Online (Sandbox Code Playgroud)
音频源设置为扬声器是否有任何解决方案,因为歌曲声音通过扬声器?如果是另一种可能的方式请回复我.
您可以录制没有音频的视频,稍后使用mp4解析器合并音频,如下所示:
/*
* @param videoFile path to video file
* @param audioFile path to audiofile
*/
public String mux(String videoFile, String audioFile) {
Movie video = null;
try {
video = new MovieCreator().build(videoFile);
} catch (RuntimeException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
Movie audio = null;
try {
audio = new MovieCreator().build(audioFile);
} catch (IOException e) {
e.printStackTrace();
return null;
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
int size = audio.getTracks().size();
Track audioTrack = audio.getTracks().get((size - 1));
video.addTrack(audioTrack);
Container out = new DefaultMp4Builder().build(video);
File myDirectory = new File(Environment.getExternalStorageDirectory(), "/Folder Name");
if (!myDirectory.exists()) {
myDirectory.mkdirs();
}
filePath = myDirectory + "/video" + System.currentTimeMillis() + ".mp4";
try {
RandomAccessFile ram = new RandomAccessFile(String.format(filePath), "rw");
FileChannel fc = ram.getChannel();
out.writeContainer(fc);
ram.close();
} catch (IOException e) {
e.printStackTrace();
return null;
}
return filePath;
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle中添加以下依赖项
compile 'com.googlecode.mp4parser:isoparser:1.0.5.4'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5626 次 |
| 最近记录: |