首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在MediaPlayer中改变音频音轨

如何在MediaPlayer中改变音频音轨
EN

Stack Overflow用户
提问于 2021-04-18 12:42:48
回答 1查看 220关注 0票数 0

提前谢谢..。我正在我的视频播放器应用程序中实现音频音轨功能,我正在成功地加载音轨并在对话框中显示,但我的问题是,当我试图更改音轨时,音轨没有改变,请看我的代码,谁能知道我在哪里出错了?

代码语言:javascript
运行
复制
 videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                videoViewSeekBar.setMax(videoView.getDuration());
                mediaPlayer.start();
                checkMultiAudioTrack(mediaPlayer);
                }
            });

这里是方法

代码语言:javascript
运行
复制
private void checkMultiAudioTrack(MediaPlayer mediaPlayer) {
    MediaPlayer.TrackInfo trackInfos[] = mediaPlayer.getTrackInfo();
    ArrayList<Integer> audioTracksIndex = new ArrayList<>();

    for (int i = 0; i < trackInfos.length; i++) {
        if (trackInfos[i].getTrackType() == MediaPlayer.TrackInfo.MEDIA_TRACK_TYPE_AUDIO) {
            audioTracksIndex.add(i);
        }
    }
    if (trackInfos.length > 2) {
        AlertDialog.Builder builder = new AlertDialog.Builder(VideoPlayerActivity.this);
        builder.setTitle("Audio Tracks");

        String values[] = new String[audioTracksIndex.size()];
        for (int i = 0; i < audioTracksIndex.size(); i++) {
            values[i] = String.valueOf("Track " + i);
        }
        /*
         * SingleChoice means RadioGroup
         * */
        builder.setSingleChoiceItems(values, 0, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                mediaPlayer.selectTrack(which);
                Toast.makeText(VideoPlayerActivity.this, "Track " + which + " Selected", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }
        });
        builder.show();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-17 10:30:52

我没有测试它,但是看起来您在selectTrack中放错了索引。which是带有名称的值的索引,但您需要在audioTracksIndex中保存的轨道索引。换句话说,用selectTrack(which)更改selectTrack(audioTracksIndex.get(which))

如果这不起作用,那么检查您是否处于调用selectTrack的正确状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67148667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档