【问题标题】:Sharing an audio file共享音频文件
【发布时间】:2017-04-02 11:25:09
【问题描述】:

我正在尝试使用按钮共享音频文件,但是当我单击它时,应用程序会显示一条消息“不支持文件格式”。我该如何解决这个问题?这是我的代码

Button buonaseeera=(Button) findViewById(R.id.pulsantebuonaseeera);



    buonaseeera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            audiobuonaseeera=MediaPlayer.create(getApplicationContext(), R.raw.buonaseeeraaudio);
            audiobuonaseeera.start();





    Button sharebutton=(Button) findViewById(R.id.sharebutton);
            sharebutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String sharePath = 
Environment.getExternalStorageDirectory().getPath()
                            + "raw2sd";
                    Uri uri = Uri.parse(sharePath);
                    Intent share = new Intent(Intent.ACTION_SEND);
                    share.setType("audio/*");
                    share.putExtra(Intent.EXTRA_STREAM, uri);
                    startActivity(Intent.createChooser(share, "Share Audio 
File"));

【问题讨论】:

  • 那么可能是不受支持的音频...是哪一个?
  • 使用正确的 MIME 类型,而不是通配符。
  • 这是一个.mp3音频文件

标签: android button audio sharing


【解决方案1】:

试试这个例子:

public class MusicPlayerActivity extends AppCompatActivity {
Activity mactivity;
private Button btn_shareaudio;

@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_music_player);

        mactivity = this;

        btn_shareaudio = (Button) findViewById(R.id.btn_activity_music_player_shareaudio);

        btn_shareaudio.setOnClickListener(
            new View.OnClickListener() {
            @Override
            public void onClick(View v) {     
            File f = new File(/*Path of the song*/);
            Uri uri = Uri.parse("file://" + f.getAbsolutePath());
            Intent share = new Intent(Intent.ACTION_SEND);
            share.putExtra(Intent.EXTRA_STREAM, uri);
            share.setType("audio/*");
            share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            mactivity.startActivity(Intent.createChooser(share, "Share audio File"));

            Toast.makeText(getApplicationContext(), "Song Shared Successfully", Toast.LENGTH_SHORT).show();     
            }
       });
}

【讨论】:

  • 我在 Android 7 版本中使用此代码,但文件附件每次都是空的。有什么解决办法?
  • 它也适用于牛轧糖。请检查您是否获得了对外部存储的读写访问的运行时权限?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多