作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将原始文件夹中的多个音频共享到另一个应用程序(whatsapp、gmail 等)。通过一个按钮,如果我点击它,就会发出音频声音,如果我按住它,我想要共享选项。正如我在互联网上看到的一种共享文件的方法是创建一个 Intent,但是在按住的方法中创建它,我在 getPackageName 中收到错误。我该如何解决这个问题?这是我的代码的一部分:
final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.cristobalmasgrande);
Button button1 =(Button) this.findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
sound1.start();
}
});
button1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Intent compartirAudio = new Intent(android.content.Intent.ACTION_SEND);
compartirAudio.setType("audio/*");
compartirAudio.putExtra(Intent.EXTRA_STREAM,
Uri.parse("android.resource://" + this.getPackageName() + "/raw/" + araujomio)); //Error on getPackageName()
startActivity(Intent.createChooser(compartirAudio, "Compartir vía"));
return false;
}
});
最佳答案
在 this.getPackageName()
中,this
是 OnLongClickListener
实例。它没有名为 getPackage()
的方法。您有多种选择,例如:
Uri.parse("android.resource://" + v.getContext().getPackageName() + "/raw/" + araujomio));
或
Uri.parse("android.resource://" + getApplicationContext.getPackageName() + "/raw/" + araujomio));
关于java - 如何通过长按分享声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47991989/
我是一名优秀的程序员,十分优秀!