1

私が抱えている問題は、デフォルトの Android ボイスレコーダーを使用して録音された .amr ファイルをプログラムで再生しようとしていることです。mp3ボイスレコーダーもダウンロードして再生しようとしましたが、どちらも機能しません。完全に機能する .amr ファイルと .mp3 ファイルをダウンロードしましたが、記録されているファイルだけが機能していないようです。

コードダンプ:

private static final String recording = new String(Environment.getExternalStorageDirectory().getPath()) + File.separatorChar + "My Documents" + File.separatorChar + "My Recordings";
    ArrayList<String> songList = new ArrayList<String>();
    private ListView playList;
    private VideoView videoView;
    private MediaController mediaController;

private void loadPlayList()
    {
        songList.clear();

        File home = new File(recording);
        if (home.listFiles( new AmrFilter()).length > 0) {
            for (File file : home.listFiles(new AmrFilter())) {
                songList.add(file.getName());
            }
        }

        if (home.listFiles( new Mp3Filter()).length > 0) {
            for (File file : home.listFiles(new Mp3Filter())) {
                songList.add(file.getName());
            }
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songList);
        playList.setAdapter(adapter);
    }

class AmrFilter implements FilenameFilter {

        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return (name.endsWith(".amr")); 
        }       
    }

    private void refreshPlayList()
    {
        songList.clear();

        File home = new File(SD_PATH);
        if (home.listFiles( new Mp3Filter()).length > 0) {
            for (File file : home.listFiles(new Mp3Filter())) {
                songList.add(file.getName());
            }
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songList);
        playList.setAdapter(adapter);
    }

private void playFile(String currentFile) throws IllegalArgumentException, SecurityException, IllegalStateException, IOException {
        videoView.setVideoPath(currentFile);
        videoView.start();
        playBtn.setVisibility(View.VISIBLE);

        // Set the progress max
        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                playBar.setMax(videoView.getDuration());
                startSeekbar.setMax(videoView.getDuration());
                startSeekbar.setProgress(videoView.getCurrentPosition());
                stopSeekbar.setMax(videoView.getDuration());
                stopSeekbar.setProgress(videoView.getDuration());
                int msec = videoView.getDuration();
                int time[] = secondsToMinutes(msec);
                totalPlayTime.setText(time[0] + ":" + time[1] + ":" + time[2]);
            }
        });

        handler.postDelayed(runner, 1000);
    }

logcat エラーは次のとおりです。

07-01 05:51:45.363: E/MediaPlayer(2912): error (1, -2147483648)
07-01 05:51:45.383: E/MediaPlayer(2912): Error (1,-2147483648)
07-01 05:51:45.383: D/VideoView(2912): Error: 1,-2147483648

問題が何であるかはわかりませんが、私が記録したものに限定されています。Android mp3プレーヤーはmp3録音を再生できるため、ファイルのアクセス許可ではないと思います。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.jahed.medialooper.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
4

1 に答える 1

0

ビデオビューでサウンドファイルを再生するのは良い考えではありません。VideoView は、.mp4 .3gp を簡単に再生できるビデオ ファイルを再生することです。

MediaPlayer を使ってみる

于 2013-07-01T05:21:02.273 に答える