2013-07-12 38 views
1

我目前正在關注dev.android.com上的Android開發者教程。我卡在音頻部分。這裏是我的代碼:與音頻服務一起使用時mContext類型不匹配

package com.example.myfirstapp; import android.app.Activity;

import android.support.v4.app.Fragment;

import android.support.v4.app.FragmentManager;

import android.content.Context;

import android.content.Intent;

import android.media.AudioManager;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.EditText;

public class MainActivity extends Activity活動{mttext; mContext;

public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    setVolumeControlStream(AudioManager.STREAM_MUSIC); 
    mContext = this.getApplicationContext(); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public void sendMessage(View view){  
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText editText = (EditText) findViewById(R.id.edit_message); 
    String message = editText.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE, message); 
    startActivity(intent); 
} 

public void playSong(){ 
    AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE); 

} 

}

在功能playSong(),mContext是一個類型不匹配。我能做些什麼來解決這個問題,我可以實現全功能代碼here

謝謝! -Dustin

回答

3

您需要投射。

AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); 

getSystemService()返回Object,它是由你來正確投它使用任何服務,您正在嘗試使用的具體方法。這是在Android中獲取對系統服務的引用的標準方式。

+0

謝謝!但現在afChangeListener(代碼的下一部分)不被識別... –

+0

不客氣!關於第二個問題,我所能說的就是確保您始終遵循教程 - 'afChangeListener'在[*處理音頻焦點丟失*](http://developer.android.com)中定義/training/managing-audio/audio-focus.html#HandleFocusLoss)部分。 –

相關問題