2011-02-05 106 views
0

因为,即时尝试学习代码。我决定制作其中的一个音板。因为,我喜欢在手机上使用它们。我一直在搜索这些源代码。我找到了一个soundboard项目的主要源代码。而且,这似乎是其他人都在谈论的主要问题。然后,我想学习如何在音板上设置铃声作为铃声,并通知。我一直在Google上搜索几个小时,并遇到了不适合我的相同代码。我找不出将声音设置为铃声的代码,或其他任何东西。我甚至从头开始尝试,没有运气。设置声音作为铃声或通知在Android应用程序

我在这个主题上找不到其他东西。请帮助我,并且所有的搜索结果都只是为了找到相同的信息。

我想能够编程一个音板来设置声音作为铃声或android/java中的通知。

谢谢。

我想我应该把一些代码,我想。 :) - 我知道这很简单,但它给了我这么难的时间,并且id很想知道这部分。该菜单确实出现了,但不保存到SD卡文件中。我只是不知道在java/android中发生了什么。即时通讯一个PHP的家伙,TY所有帮助

  Button btn = (Button) findViewById(R.id.sound1); 
      registerForContextMenu(btn); 
     } 

     @Override 
     public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) { 
     super.onCreateContextMenu(menu, v, menuInfo); 
      menu.setHeaderTitle("Set as..."); 
      menu.add(0, v.getId(), 0, "Ringtone"); 
      menu.add(0, v.getId(), 0, "Notification"); 
     } 

     @Override 
     public boolean onContextItemSelected(MenuItem item) { 
      if(item.getTitle()=="Ringtone"){function1(item.getItemId());} 
      else if(item.getTitle()=="Notification"){function2(item.getItemId());} 
      else {return false;} 
     return true; 
     } 

     public void function1(int id){ 
      Toast.makeText(this, "Ringtone Saved", Toast.LENGTH_SHORT).show(); 
     } 
     public void function2(int id){ 
      Toast.makeText(this, "Notification Saved", Toast.LENGTH_SHORT).show(); 
     } 




    boolean saveas(int sound1){ 
     byte[] buffer=null; 
     InputStream fIn = getBaseContext().getResources().openRawResource(sound1); 
     int size=36462; 

     try { 
      size = fIn.available(); 
      buffer = new byte[size]; 
      fIn.read(buffer); 
      fIn.close(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      return false; 
     } 

     String path="/sdcard/media/audio/ringtones/"; 
     String filename="sound1.ogg"; 

     boolean exists = (new File(path)).exists(); 
     if (!exists){new File(path).mkdirs();} 

     FileOutputStream save; 
     try { 
      save = new FileOutputStream(path+filename); 
      save.write(buffer); 
      save.flush(); 
      save.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      return false; 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      return false; 
     }  

     sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename))); 

     File k = new File(path, filename); 

     ContentValues values = new ContentValues(); 
     values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); 
     values.put(MediaStore.MediaColumns.TITLE, "sound1"); 
     values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg"); 
     values.put(MediaStore.Audio.Media.ARTIST, "we"); 
     values.put(MediaStore.Audio.Media.IS_RINGTONE, true); 
     values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); 
     values.put(MediaStore.Audio.Media.IS_ALARM, true); 
     values.put(MediaStore.Audio.Media.IS_MUSIC, false); 

     //Insert it into the database 
     this.getContentResolver().insert(MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()), values); 

     return false;} 

};

回答

2

尝试将您的声音文件从.ogg转换为.mp3。媒体播放器无法播放我的体验中的.ogg文件。如果你修复它应该工作。

0

可能与您的权限有关(您可能需要数据存储权限)。

+1

这应该是评论它没有回答 – 2012-10-27 19:11:52