【问题标题】:How to add audio to Recycler View items如何将音频添加到 Recycler View 项目
【发布时间】:2021-08-31 13:40:18
【问题描述】:

我正在制作一个显示不同类型吉他的应用程序,当用户点击特定类型吉他的图像(或文本)时,它会播放该类型的即兴演奏(例如,点击电吉他将演奏电吉他即兴演奏)。这是我的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_guitar_basics);

    recGuitarTypes();

}

private void recGuitarTypes(){

    recGtypes = (RecyclerView) findViewById(R.id.viewGuitarTypes);

    GuitarTypesRecyclerViewAdapter adapter = new GuitarTypesRecyclerViewAdapter(this);

    recGtypes.setAdapter(adapter);
    recGtypes.setLayoutManager(new GridLayoutManager(this, 2));

    ArrayList<Guitar> arrGuitar = new ArrayList<>();

    arrGuitar.add(new Guitar("Nylon String Spanish", "https://inside-guitar.com/wp-content/uploads/2019/05/Savarez-Flamenco-Guitar-Strings.jpg"));
    arrGuitar.add(new Guitar("Steel String Acoustic","https://hearthemusicplay.com/wp-content/uploads/2017/05/steelstringguitar-e1494992902529-1140x638.jpg"));
    arrGuitar.add(new Guitar("Electric Guitar","https://cdn.mos.cms.futurecdn.net/papiVxAvWm3QaDAD8fSdqS-970-80.jpg.webp"));

    adapter.setGuitars(arrGuitar);
    
        
}

我想检查代码是否有效,这就是为什么我尝试使用“原始”文件夹中的单个音频文件来测试它,该文件应用于 RecyclerView 中的所有项目。它没有。如果您想查看,请查看以下代码:

recGtypes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            MediaPlayer mediaPlayer = MediaPlayer.create(view.getContext(), R.raw.steel_string);

            mediaPlayer.start();
        }
    });

提前感谢您的帮助。

【问题讨论】:

  • 我已经添加了答案,如果它有效并且您正在寻找的东西,请将其标记为正确答案,否则在答案下方评论!

标签: android-studio android-recyclerview android-mediaplayer onclicklistener


【解决方案1】:

你能试试下面的代码吗?

recGtypes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

           private MediaPlayer mediaPlayer = new MediaPlayer();

          AssetFileDescriptor file = getResources().openRawResourceFd(R.raw.steel_string);
          mediaPlayer.setDataSource(file.getFileDescriptor(), file.getStartOffset(),  file.getLength());
          
          file.close();
          mediaPlayer.prepare();
          mediaPlayer.start();
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多