Css

[Mtk] [M0]ファイルマネージャーで録音ファイルを作成する方法は、再生する音楽プレーヤーによって選択できます



How Make Recording File File Manager Can Be Selected Music Player Play



[説明]

ファイルマネージャで記録ファイル(.3gpまたは.ogg)を再生する場合、デフォルトではビデオプレーヤーで再生されます。再生する音楽プレーヤーを選択できるように変更するにはどうすればよいですか?

[解決]
Documents involved: 1、FileManager/src/com/mediatek/filemanager/service/FileManagerService.java 2、FileManager/src/com/mediatek/filemanager/FileInfo.java 3、Music/AndroidManifest.xml

次のように変更してください。



  1. コメントアウトされた関数をFileManagerService.javaに復元します。
    public String update3gppMimetype(FileInfo fileInfo)そしてその機能本体
public String update3gppMimetype(FileInfo fileInfo) { LogUtils.d(TAG, 'update3gppMimetype...') String mimeType = FileInfo.MIMETYPE_3GPP_VIDEO ContentResolver resolver = getContentResolver() if (resolver != null && fileInfo != null) { // fileInfo.setFileMimeType(FileInfo.MIMETYPE_3GPP_VIDEO) final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI final String[] projection = new String[] { MediaStore.MediaColumns.MIME_TYPE } final String selection = MediaStore.MediaColumns.DATA + '=?' final String[] selectionArgs = new String[] { fileInfo .getFileAbsolutePath() } Cursor cursor = null try { cursor = resolver.query(uri, projection, selection, selectionArgs, null) LogUtils.d(TAG, 'update3gppMimetype,file:' + fileInfo.getFileAbsolutePath()) if (cursor != null && cursor.moveToFirst()) { mimeType = cursor.getString(cursor .getColumnIndex(MediaStore.MediaColumns.MIME_TYPE)) LogUtils.d(TAG, 'update3gppMimetype mimeType: ' + mimeType) } else { mimeType = fileInfo.getFileOriginMimeType() LogUtils.d(TAG, 'update3gppMimetype, not find from media,origin mimeType: ' + mimeType) if (mimeType == null) { mimeType = FileInfo.MIMETYPE_3GPP_VIDEO } } } finally { if (cursor != null) { cursor.close() } } } return mimeType }

ガイドパッケージを追加します。

import android.content.ContentResolver import android.database.Cursor import android.net.Uri import android.provider.MediaStore
  1. FileInfo.javaのコードの一部を復元します
private static HashMap sMimeType3GPPMap = new HashMap()
  • public String getFileMimeType(FileManagerService service)注釈が付けられているコード:
    ///M:@#3gp#@{the follow code is to handle the 3gp file.not do special handle nowこのメモの下のすべて
///M:@#3gp#@{the follow code is to handle the 3gp file.not do special handle now if (mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP_UNKONW)) { mimeType = service.update3gppMimetype(this) } if (mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP_AUDIO) || mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP_VIDEO) || mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP2_VIDEO)) { String name = null int sepIndex = mName.lastIndexOf('(') if (sepIndex > 0) { name = mName.substring(0, sepIndex) } else { name = mName.substring(0, mName.indexOf('.')) } LogUtils.d(TAG, 'getFileMimeType ,record the mimetype: ' + mimeType + ',name = ' + name + ',mName = ' + mName) sMimeType3GPPMap.put(name, mimeType) } ///@the top code is to handle the 3gp file.not do special handle now}
  • private String getMimeType(File file)コメントアウトされたコード:
    ///M:#3gp#@{the follow code is to handle the 3gp file.not do special handle nowこのメモの下のすべて
///M:#3gp#@{the follow code is to handle the 3gp file.not do special handle now // sp ecial solution for checking 3gpp original mimetype // 3gpp extension could be video/3gpp or audio/3gpp if (mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP_VIDEO) || mimeType.equalsIgnoreCase(FileInfo.MIMETYPE_3GPP2_VIDEO)) { LogUtils.d(TAG, 'getMimeType, a 3gpp or 3g2 file,mimeType=' + mimeType) return FileInfo.MIMETYPE_3GPP_UNKONW } ///M:@{the top code is to handle the 3gp file.not do special handle now
  • コメントアウトされた関数public String getFileOriginMimeType()すべての復元
///M:@#3gp#{the follow code is to handle the 3gp file.not do special handle now public String getFileOriginMimeType() { String key = null LogUtils.d(TAG, 'getFileOriginMimeType, mName =' + mName) int sepIndex = mName.lastIndexOf('(') if (sepIndex > 0) { key = mName.substring(0, sepIndex) } else { key = mName.substring(0, mName.indexOf('.')) } LogUtils.d(TAG, 'getFileOriginMimeType,key is:' + key) String orginalMimeType = sMimeType3GPPMap.get(key) LogUtils.d(TAG, 'getFileOriginMimeType, OrginalMimeType=' + orginalMimeType) if (orginalMimeType != null) { sMimeType3GPPMap.remove(key) } return orginalMimeType } ///M:@{the top code is to handle the 3gp file.not do special handle now
  • ガイドパッケージを追加
import java.util.HashMap
  1. 音楽のandroidManifest.xmlで、

    次のインテントフィルタを下に追加します。
|_+_|