【问题标题】:Play audio from fragment从片段播放音频
【发布时间】:2017-07-20 09:39:43
【问题描述】:

我正在尝试从片段中播放音频,但它在媒体播放器上给了我错误。错误是这样的

无法解析方法'create(com.xyz.packageName.ConnectFragment,int)'

代码行是这样的

MediaPlayer mPlayer = MediaPlayer.create(ConnectFragment.this,R.raw.thenights);

这里应该是构造函数参数的上下文部分 - (ConnectFragment.this,R.raw.thenights)。

构建项目后出错

错误:(39, 25) 错误:此处不允许变量声明

提前致谢。

【问题讨论】:

  • 您在片段中以哪种方法调用此代码?
  • 它是从 connectFragment 类中的内部类调用的。对包含我的媒体播放器代码的方法的调用在 connectFragment 类中
  • 我应该发布整个片段类代码...够了吗?
  • 是的,请发布。
  • 请贴出片段类代码。

标签: android android-fragments android-mediaplayer


【解决方案1】:

试试这个,

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

//OR
MediaPlayer mediaPlayer = MediaPlayer.create(getActivity(), R.raw.thenights); 

//OR
MediaPlayer mediaPlayer = MediaPlayer.create(getActivity().getApplicationContext(), R.raw.thenights);

【讨论】:

  • 所有三个选项都给出相同的错误“此处不允许声明”
  • 那你为什么要回答其他stackoverflow.com/a/45211670/6666677
  • 因为这是只运行一个 mp3 的情况......他想从片段中播放一个按钮上的单个声音。我想在用户点击时播放不同的歌曲.. 所以在我的情况下,单一声明是不够的
  • 这是正确的答案,但仅适用于您想要播放单个声音的情况......我想你明白了我的意思。如果您认为我的答案是正确的,请投票。
  • 我已经用错误更新了我的问题......这是一个编译时错误,所以日志中不会出现任何类似错误
【解决方案2】:

MediaPlayer 接受 applicationcontext 所以你可以这样做

MediaPlayer mPlayer = MediaPlayer.create(getActivity().getApplicationContext(),R.raw.thenights);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-28
    • 2018-11-20
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多