我正面临着媒体屏蔽的问题。为什么我的应用会崩溃?解决办法是什么?
java.lang.IllegalStateException: Failed to stop the muxer
at android.media.MediaMuxer.nativeStop(Native Method)
at android.media.MediaMuxer.stop(MediaMuxer.java:245)
at com.app.filter.helper.config.VideoInfoUtils.combineVideo(VideoInfoUtils.java:159)
我的sd卡中有一个mp4视频文件。我想从视频中提取音频,然后使用MediaExtractor Api将提取的音频保存为sd卡上的单独文件。下面是我尝试过的代码:
MediaExtractor extractor = new MediaExtractor();
extractor.setDataSource(MEDIA_PATH_To_File_On_SDCARD);
for (i = 0; i < extractor.getTrackCount(); i++) {
MediaFormat format = extractor.getTrackForma
在我的Android应用程序中,我正在尝试创建一个视频文件,在视频上的给定时间位置添加一个音轨。我使用了一个MediaMuxer并更改了presentationTimeUs的值来切换音频。但显然这不是一条正确的路,因为视频的开始时间也发生了变化。另一个问题是mp3音频无法工作。这是我到目前为止的尝试:
final long audioPositionUs = 10000000;
File fileOut = new File (Environment.getExternalStoragePublicDirectory (
Environment.DIRECTORY_MOVIES) +
我有一个视频文件.mp4 -只有视频轨道。
我使用MediaExtractor和MediaMuxer来添加音频文件。这个很好用。
在处理过的文件上,我想添加另一个音频轨道。
因此,我再次使用MediaExtractor和MediaMuxer复制文件,(创建视频和音频轨道、读取提取器和编写muxer)。此外,我试图添加第二个音频轨道的穆克塞。但这会引发错误Failed to add the track to the muxer。
在这个中,我们可以看到muxer不支持多个轨道。
链接中的代码:
// Throws exception b/c 2 audio tracks were added.
下面的代码是我的工作,它可以提取音频轨道并将其保存到android中的文件中。但是,我不知道如何将音频轨道编码成一个可播放的音频文件(例如,.m4a或.aac)。另外,我还读取了音频轨道{mime=音频/mp4a-latm,aac-profile=2,声道计数=2,声道id=2,profile=2,最大输入-大小=610,durationUs=183600181,cs0-0=java.nio.HeapByteBufferpos=0 lim=2 cap=2,sample-rate=44100}的格式信息。
MediaExtractor extractor = new Me
我正在尝试使用新的MediaSync API来同步播放视频和音频。
我让只有音频的播放器使用MediaSync工作,但是对于只播放视频的播放器,在显示5-6帧之后,我就在logcat中得到了这个
I/MediaSync﹕ still waiting to release a buffer before acquire
我的视频播放器如下所示
public class VideoDecoderTask implements Runnable {
......
@Override
public void run() {
mediaSync = new MediaSync();
m
我试图建立一个播放器,播放mpeg2 2-ts流与2音轨使用MediaCodec和MediaExtractor。当我将URL设置为提取器:extractor.setDataSource(URL),int时,我可以看到框架找到了两个音频轨道:
但后来我打电话说:
int trackCount = extractor.getTrackCount();
for (int i = 0; i < track_count; i++){
format = extractor.getTrackFormat(i);
String mime = format.getString(Med
我正在尝试测试新的低级媒体应用程序接口特性,MediaExtractor和MediaCodec。我正在遵循这个指南:
我编写了这个函数,其中songsList.get(songIndex).get("songPath")是另一个函数给出的mp3文件的路径。
/**
* Attempts at API level 16 implementation
*
* MediaExtractor, MediaCodec and AudioTrack to play audiofiles
*
* */
public void JBPlay(int songIndex
我遇到问题时,试图提取和解码H264视频使用安卓软件解码器(omx.google.h264.decder)。这个问题似乎涉及多个设备。
使用Nexus5硬件解码器(OMX.qcom.video.decoder.avc)可以很好地播放此视频。
下面的示例代码展示了这个问题,并且是使用android MediaCodec和MediaExtractor类的一个相当标准的示例。
当第一个缓冲区被传递给解码器时,我得到的异常是一个非法状态异常。
视频在基线配置文件中编码为720x480 20fps,因此应符合兼容性指南。
我将非常感谢任何指导,使软件视频解码器与H264视频正确工作。
public v
我正在尝试使用低级媒体API来解码mp3和其他格式的文件,这样我就可以处理它们了。我按照教程获取一个编码的文件,并用AudioTrack回放它,我的代码基本相同,但我得到了一个错误。
下面是我的代码:
public void playSongMono(View view)
{
//create extractor and point it to file
AssetFileDescriptor fd = getResources().openRawResourceFd(R.raw.song);
MediaExtractor extractor = new Med
我正在尝试使用MediaCodec播放视频。视频正在播放,但音频是静音的。我想取消静音我发现需要分别解码音频和视频的audio.After研究。我只想使用一个媒体解码器和MediaExtractor对象来播放视频和audio.How。这可以实现吗?我使用了以下代码来播放视频。
extractor = new MediaExtractor();
extractor.setDataSource(SAMPLE);
for (int i = 0; i < extractor.getTrackCount(); i++) {
在android上使用libvlc获取所有媒体曲目(视频、音频和字幕)的过程中,我找不到太多的文档。
据我所知,我必须解析媒体,我是这样做的:
Media media = new Media(libVLC, Uri.parse(url));
media.setEventListener(new IMedia.EventListener() {
@Override
public void onEvent(IMedia.Event event) {
switch (event.type){
case IMedi